AFAIK non è possibile reimpostare la posizione del cursore con PDO - ciò potrebbe avere a che fare con la compatibilità con alcuni database, che non supportano il ripristino dei cursori interni.
Se vuoi eseguire un'iterazione due volte sui risultati, recuperalo nell'array e ripeti su questo array:
<?php
$results = $stmt->fetchAll();
foreach($results as $row) {
// first
}
foreach($results as $row) {
// second
}
Modifica Alcuni database supportano i cursori scorrevoli. Per usarlo, aggiungi PDO::CURSOR_SCROLL
flag per prepare
metodo (vedi esempi nella pagina della documentazione PDOFetch
). Ma ciò aggiunge solo la possibilità di andare avanti o indietro, non di riavvolgere completamente. Inoltre, non tutti i database supportano quel tipo di cursore (es. MySQL no).