Mysql
 sql >> Database >  >> RDS >> Mysql

Reimposta la posizione del cursore nel PDO

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).