Maison >base de données >tutoriel mysql >Comment puis-je réinitialiser les pointeurs de tableau dans PDO après avoir récupéré les résultats MySQL ?

Comment puis-je réinitialiser les pointeurs de tableau dans PDO après avoir récupéré les résultats MySQL ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-28 21:06:131062parcourir

How Can I Reset Array Pointers in PDO After Fetching MySQL Results?

Gestion des pointeurs de tableau dans les résultats PDO

Lors de la transition de MySQL vers PDO, la gestion des pointeurs de tableau pour naviguer dans les résultats peut être difficile. Pour parcourir efficacement un tableau récupéré plusieurs fois, en commençant à chaque fois à partir de la ligne zéro, envisagez la technique suivante.

PDO ne fournit pas d'équivalent direct à la fonction MySQL mysql_data_seek() pour réinitialiser le pointeur du tableau. Cependant, vous pouvez stocker les résultats récupérés dans un tableau et le parcourir autant de fois que nécessaire.

Voici un extrait de code mis à jour qui illustre cette approche :

$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 of the loop, starting from row zero
}

foreach ($rows as $r) {
  // Second run of the loop, starting from row zero again
}

En enregistrant les résultats au tableau $rows, vous pouvez le parcourir indépendamment plusieurs fois, en vous assurant que chaque boucle commence à 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!

Déclaration:
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