Mysql
 sql >> Base de données >  >> RDS >> Mysql

Réinitialiser la position du curseur dans PDO

AFAIK, il n'y a aucune possibilité de réinitialiser la position du curseur avec PDO - cela pourrait avoir un rapport avec la compatibilité avec certaines bases de données, qui ne prennent pas en charge la réinitialisation des curseurs internes.

Si vous souhaitez itérer deux fois sur les résultats, récupérez-le dans le tableau et parcourez ce tableau :

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

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

Modifier Certaines bases de données prennent en charge les curseurs défilants. Pour l'utiliser, ajoutez PDO::CURSOR_SCROLL indicateur pour prepare méthode (voir des exemples sur la page de documentation PDOFetch ). Mais cela ne fait qu'ajouter la possibilité d'avancer ou de reculer, pas de rembobiner complètement. De plus, toutes les bases de données ne prennent pas en charge ce type de curseur (par exemple, MySQL ne le fait pas).