AFAIK няма възможност за нулиране на позицията на курсора с PDO - това може да има нещо общо със съвместимостта с някои бази данни, които не поддържат нулиране на вътрешни курсори.
Ако искате да повторите двукратно резултатите, извлечете го в масива и повторете този масив:
<?php
$results = $stmt->fetchAll();
foreach($results as $row) {
// first
}
foreach($results as $row) {
// second
}
Редактиране Някои бази данни поддържат курсори с възможност за превъртане. За да използвате това, добавете PDO::CURSOR_SCROLL
флаг за prepare
метод (вижте примери на страницата за документация на PDOFetch
). Но това само добавя възможност за придвижване напред или назад, а не изцяло назад. Освен това не всички бази данни поддържат този тип курсор (например MySQL не го поддържа).