PDO : réinitialisation du pointeur de tableau dans les résultats
Lors de la migration des méthodes MySQL SELECT vers PDO, itérer deux fois sur un tableau récupéré au début de chaque itération à partir de la ligne zéro pose un défi. PDO n'a pas d'équivalent à la fonction mysql_data_seek() de MySQL.
Envisagez d'utiliser l'approche suivante :
Enregistrez les résultats dans un tableau :
Itérer le tableau deux fois :
Voici un exemple :
$pdo = new PDO('mysql:host=' . $host . ';dbname='.$database, $username, $password); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $stmt = $pdo->prepare('SELECT * FROM mytable WHERE active = 1 ORDER BY name ASC'); $stmt->setFetchMode(PDO::FETCH_ASSOC); $stmt->execute(); $rows = $stmt->fetchAll(); foreach ($rows as $r) { // first run } foreach ($rows as $r) { // second run }
Cette approche simule efficacement le comportement souhaité de réinitialisation du pointeur de tableau, permettant plusieurs itérations à travers le même résultat ensemble.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!