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!