>데이터 베이스 >MySQL 튜토리얼 >`fetchAll()` 이후 PDO 결과에서 배열 포인터를 재설정하는 방법은 무엇입니까?

`fetchAll()` 이후 PDO 결과에서 배열 포인터를 재설정하는 방법은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-12-01 01:32:09994검색

How to Reset the Array Pointer in PDO Results After `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
}

추가 컨텍스트

  • fetchAll() 메서드는 모든 결과를 배열로 수집합니다.
  • $rows 배열을 반복하면 포인터가 항상 각 행의 첫 번째 행에서 시작됩니다. loop.

이 솔루션을 구현하면 PDO 결과에서 배열 포인터를 효과적으로 재설정할 수 있으므로 가져온 배열을 행 0부터 여러 번 반복할 수 있습니다.

위 내용은 `fetchAll()` 이후 PDO 결과에서 배열 포인터를 재설정하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.