Maison > base de données > tutoriel mysql > Comment réinitialiser le pointeur de tableau dans les résultats PDO après `fetchAll()` ?

Comment réinitialiser le pointeur de tableau dans les résultats PDO après `fetchAll()` ?

Barbara Streisand
Libérer: 2024-12-01 01:32:09
original
1066 Les gens l'ont consulté

How to Reset the Array Pointer in PDO Results After `fetchAll()`?

Réinitialisation du pointeur du tableau de résultats PDO – Une solution détaillée

Introduction

La migration des méthodes MySQL SELECT vers les méthodes PDO peut introduire défis. La réinitialisation du pointeur de tableau, qui permet de parcourir plusieurs fois un tableau récupéré, est l'un de ces défis.

Le problème

Dans MySQL, la fonction mysql_data_seek() y parvient réinitialisation du pointeur. Cependant, en PDO, cette fonction n'est pas disponible. Comme illustré dans le code fourni, les boucles suivantes commençant à partir de la ligne zéro ne renvoient aucun résultat.

La solution

Pour surmonter ce problème, stockez les résultats récupérés dans un tableau et parcourir ce tableau plusieurs fois. Ce code modifié illustre la solution :

$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) {
    // seconds run
}
Copier après la connexion

Contexte supplémentaire

  • La méthode fetchAll() collecte tous les résultats dans un tableau.
  • L'itération sur le tableau $rows garantit que le pointeur commence toujours à la première ligne de chaque boucle.

En implémentant cette solution, vous pouvez réinitialiser efficacement le pointeur de tableau dans les résultats PDO, vous permettant de parcourir le tableau récupéré plusieurs fois à partir de la ligne zéro.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal