Maison > Article > développement back-end > Comment parcourir efficacement les ensembles de résultats MySQLi en PHP ?
Itération sur les ensembles de résultats MySQLi
En PHP, l'itération sur les résultats d'une requête MySQL peut être réalisée à l'aide de la méthode mysqli_query().
Pour parcourir l'ensemble de résultats de la requête, sélectionnez l'uid de la base d'utilisateurs, vous pouvez utiliser ce qui suit loop:
$output = mysqli_query($mysqli, "select uid from userbase"); foreach ($output as $row) { echo $row['uid']; }
Cette boucle récupérera et affichera correctement la valeur uid pour chaque ligne de l'ensemble de résultats. Il utilise la syntaxe orientée objet de MySQLi, qui est plus concise et efficace que la syntaxe procédurale.
Erreurs potentielles
L'erreur que vous avez rencontrée dans votre code peut être causé par l'utilisation de fetch_array() avec le comportement par défaut consistant à générer un jeu de résultats contenant à la fois des clés indexées et associatives (MYSQLI_BOTH). Pour résoudre ce problème, vous pouvez spécifier le comportement souhaité en utilisant MYSQLI_ASSOC ou MYSQLI_NUM comme deuxième argument de fetch_array().
Alternativement, vous pouvez éviter complètement d'utiliser fetch_array() en utilisant mysqli_query() comme objet itérable, en éliminant la nécessité d'appeler fetch_array() sur chaque ligne itérée.
Correction Itération
Le code que vous avez fourni contient également un schéma d'itération incorrect. La variable $i doit être incrémentée dans la boucle pour accéder aux lignes suivantes du jeu de résultats, qui commencent par l'index 0.
Par conséquent, l'itération correcte utilisant fetch_array() serait :
$i = 0; $output = mysqli_query($mysqli, "select uid from userbase"); while ($row = $output->fetch_array(MYSQLI_ASSOC)) { echo $row['uid']; $i++; }
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!