집 >데이터 베이스 >MySQL 튜토리얼 >`fetchAll()` 이후 PDO 결과에서 배열 포인터를 재설정하는 방법은 무엇입니까?
소개
MySQL SELECT 방법에서 PDO 방법으로 마이그레이션하면 도전. 가져온 배열을 여러 번 반복할 수 있도록 배열 포인터를 재설정하는 것이 그러한 과제 중 하나입니다.
문제
MySQL에서는 mysql_data_seek() 함수가 이를 달성합니다. 포인터 재설정. 그러나 PDO에서는 이 기능을 사용할 수 없습니다. 제공된 코드에 예시된 것처럼 행 0에서 시작하는 후속 루프는 결과를 반환하지 않습니다.
해결책
이 문제를 해결하려면 가져온 결과를 배열에 저장하고 해당 배열을 여러 번 반복합니다. 이 수정된 코드는 솔루션을 보여줍니다.
$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(); $rows = $stmt->fetchAll(); foreach ($rows as $r) { // first run } foreach ($rows as $r) { // seconds run }
추가 컨텍스트
이 솔루션을 구현하면 PDO 결과에서 배열 포인터를 효과적으로 재설정할 수 있으므로 가져온 배열을 행 0부터 여러 번 반복할 수 있습니다.
위 내용은 `fetchAll()` 이후 PDO 결과에서 배열 포인터를 재설정하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!