AFAIK det finns ingen möjlighet att återställa markörens position med PDO - det kan ha att göra med kompatibilitet med vissa databaser, som inte stöder återställning av interna markörer.
Om du vill iterera två gånger över resultaten, hämta det till arrayen och iterera över denna array:
<?php
$results = $stmt->fetchAll();
foreach($results as $row) {
// first
}
foreach($results as $row) {
// second
}
Redigera Vissa databaser stöder rullningsbara markörer. För att använda det, lägg till PDO::CURSOR_SCROLL
flagga för att prepare
metod (se exempel på PDOFetch-dokumentationssida
). Men det ger bara möjlighet att gå framåt eller bakåt, inte spola tillbaka helt. Dessutom stöder inte alla databaser den typen av markör (t.ex. MySQL gör det inte).