Réitération des résultats de récupération PDO depuis le début
Dans l'extension PDO de PHP, vous pouvez rencontrer des difficultés lorsque vous tentez de parcourir plusieurs fois un tableau récupéré , en commençant à chaque fois par la première rangée. Contrairement à la méthode mysql_data_seek de MySQL, PDO n'a pas d'équivalent direct pour réinitialiser manuellement le pointeur du tableau.
Pour surmonter ce problème, vous pouvez exploiter une approche alternative en stockant les résultats dans un tableau. Voici un extrait de code modifié démontrant ceci :
<code class="php"><?php $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(); // Store the results in an array $rows = $stmt->fetchAll(); // First iteration foreach ($rows as $r) { // Perform desired actions starting from the first row } // Second iteration foreach ($rows as $r) { // Perform additional actions starting from the first row again } ?></code>
En stockant les résultats dans $rows, vous créez effectivement un instantané de l'ensemble de résultats complet. Cela vous permet de parcourir le tableau plusieurs fois, en vous assurant que chaque itération commence à partir de la première ligne. Cette approche offre une plus grande polyvalence et élimine le besoin de manipulation manuelle du pointeur, ce qui la rend adaptée à une variété de cas d'utilisation.
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!