AFAIK neexistuje možnost resetovat pozici kurzoru pomocí PDO - to může mít něco společného s kompatibilitou s některými databázemi, které nepodporují resetování interních kurzorů.
Pokud chcete výsledky opakovat dvakrát, načtěte je do pole a opakujte toto pole:
<?php
$results = $stmt->fetchAll();
foreach($results as $row) {
// first
}
foreach($results as $row) {
// second
}
Upravit Některé databáze podporují rolovatelné kurzory. Chcete-li to použít, přidejte PDO::CURSOR_SCROLL
příznak prepare
metoda (viz příklady na stránce dokumentace PDOFetch
). Ale to jen přidává možnost posouvat se dopředu nebo dozadu, ne úplně vzad. Také ne všechny databáze podporují tento typ kurzoru (např. MySQL ne).