sql >> Base de Datos >  >> RDS >> Mysql

Restablecer la posición del cursor en PDO

AFAIK, no hay posibilidad de restablecer la posición del cursor con PDO; eso podría tener algo que ver con la compatibilidad con algunas bases de datos, que no admiten el restablecimiento de cursores internos.

Si desea iterar dos veces sobre los resultados, llévelo a la matriz e itere sobre esta matriz:

<?php 
$results = $stmt->fetchAll();  
foreach($results as $row) {
    // first
}

foreach($results as $row) {
    // second
}

Editar Algunas bases de datos admiten cursores desplazables. Para usar eso, agregue PDO::CURSOR_SCROLL marcar para prepare método (ver ejemplos en página de documentación de PDOFetch ). Pero eso solo agrega la posibilidad de avanzar o retroceder, no retroceder por completo. Además, no todas las bases de datos admiten ese tipo de cursor (por ejemplo, MySQL no).