Réinitialisation de l'itérateur pour la traversée répétée de tableaux dans PDO
PDO fournit une approche plus robuste et orientée objet pour les interactions avec les bases de données. Lors de la transition des méthodes MySQL SELECT vers PDO, réinitialiser le pointeur de tableau pour parcourir plusieurs fois les résultats récupérés peut être difficile.
Pour y parvenir dans MySQL, mysql_data_seek($result, 0) est utilisé. Avec PDO, une simple réinitialisation du pointeur n'est pas prise en charge. Au lieu de cela, vous devez envisager une approche différente.
Solution : stocker et reboucler un tableau
La solution consiste à stocker les résultats récupérés dans un tableau, puis parcourir le tableau deux fois. Ce faisant, vous vous éloignez de l'itérateur PDO et prenez le contrôle du pointeur interne du tableau.
Voici comment procéder :
<code class="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(); $rows = $stmt->fetchAll(); foreach ($rows as $r) { // First run of the loop } foreach ($rows as $r) { // Second run of the loop }</code>
Cette approche évite les complexités liées à la réinitialisation de l'itérateur PDO. et fournit une solution plus simple pour parcourir plusieurs fois les résultats récupérés.
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!