AFAIK нет возможности сбросить позицию курсора с помощью PDO - это может быть связано с совместимостью с некоторыми базами данных, которые не поддерживают сброс внутренних курсоров.
Если вы хотите, чтобы два раза итерации по результатам, принесите его в массив и перебирать этот массив:
<?php
$results = $stmt->fetchAll();
foreach($results as $row) {
// first
}
foreach($results as $row) {
// second
}
Редактировать Некоторые базы данные поддерживают прокрутку. Для этого добавьте флаг PDO::CURSOR_SCROLL
в prepare
(см. Примеры на PDOFetch documentation page). Но это только добавляет возможность двигаться вперед или назад, а не полностью перематывать. Кроме того, не все базы данных поддерживают этот тип курсора (например, MySQL не работает).
Если вам не нужно дважды извлекать данные, почему вы хотите сбросить положение курсора, то? –
@YourCommonSense Конечно, вы пропустили мою мысль. Я хотел знать, как сбросить курсор в PDO. что Downvote не оправдался вообще. – varuog