Maison > base de données > tutoriel mysql > Comment réinitialiser le pointeur du tableau de résultats PDO pour plusieurs itérations ?

Comment réinitialiser le pointeur du tableau de résultats PDO pour plusieurs itérations ?

Barbara Streisand
Libérer: 2024-12-08 20:06:16
original
943 Les gens l'ont consulté

How to Reset PDO Result Array Pointer for Multiple Iterations?

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 :

  1. Enregistrez les résultats dans un tableau :

    • Exécutez la requête PDO et stockez les résultats dans un tableau en appelant $stmt->fetchAll().
  2. Itérer le tableau deux fois :

    • Parcourir le tableau $rows deux fois , en effectuant les opérations souhaitées dans chaque itération.

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

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!

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