Tôi gặp sự cố khi chuyển từ phương thức SELECT mysql sang phương thức PDO. Tôi muốn lặp qua một mảng được tìm nạp hai lần, cả hai lần bắt đầu bằng hàng số không. Trong mysql, tôi sẽ sử dụng:Đặt lại con trỏ mảng trong kết quả PDO
mysql_data_seek($result,0);
Sử dụng phương thức PDO, tôi không chắc chắn cách thực hiện tương tự. Mã dưới đây là cách tôi đang cố gắng làm điều này. Vòng lặp đầu tiên hoạt động tốt nhưng vòng lặp thứ hai trong khi không trả về gì cả. Ai đó có thể cho tôi biết tôi đang đi sai không?
$pdo = new PDO('mysql:host=' . $host . ';dbname='.$database, $username, $password);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $pdo->prepare('SELECT * FROM mytable WHERE active = 1 ORDER BY name ASC');
$stmt->setFetchMode(PDO::FETCH_ASSOC);
$stmt->execute();
while($row = $stmt->fetch())
{
//do something starting with row[0]
}
while($row = $stmt->fetch())
{
//do something else starting with row[0]
}
Cảm ơn sự giúp đỡ của bạn.
Wow! Điều đó có vẻ hiển nhiên. Không biết tại sao tôi bị mắc kẹt khi sử dụng vòng lặp while. Cảm ơn cú đá vào đầu! – user1028866
Vì bạn đã bỏ qua [tài liệu] (http://php.net/manual/en/ref.pdo-mysql.php#pdo.constants.mysql-attr-use-buffered-query). – AnrDaemon
Đây không phải là ý tưởng hay khi làm việc với tập hợp kết quả lớn. Tất cả dữ liệu sẽ được lưu trữ trong mảng. –