Maison > développement back-end > tutoriel php > Comment parcourir un ensemble de résultats PDO plusieurs fois ?

Comment parcourir un ensemble de résultats PDO plusieurs fois ?

Mary-Kate Olsen
Libérer: 2024-10-29 14:56:02
original
972 Les gens l'ont consulté

How to Iterate Through a PDO Result Set Multiple Times?

Réitération d'un ensemble de résultats PDO depuis le début

Lors de la transition des méthodes MySQL SELECT aux méthodes PDO, réinitialisation du pointeur de tableau pour parcourir le résultat défini plusieurs fois peut être difficile. Cela est dû à la différence dans la façon dont ces méthodes gèrent les pointeurs de tableau.

Dans le code fourni, la première boucle while parcourt avec succès le tableau récupéré à partir de la ligne zéro. Cependant, la deuxième boucle while renvoie un ensemble vide puisque la méthode fetch() de PDO avance le pointeur de tableau à chaque appel.

Pour obtenir le comportement souhaité, on peut stocker les résultats dans un tableau, puis parcourir ce tableau plusieurs 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
}
Copier après la connexion

En utilisant fetchAll(), toutes les lignes de l'ensemble de résultats sont stockées dans le tableau $rows. Cela vous permet de parcourir le tableau plusieurs fois sans réinitialiser manuellement le pointeur du tableau.

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