Maison  >  Article  >  développement back-end  >  Comment parcourir efficacement les ensembles de résultats MySQLi en PHP ?

Comment parcourir efficacement les ensembles de résultats MySQLi en PHP ?

DDD
DDDoriginal
2024-11-23 04:04:171023parcourir

How to Efficiently Iterate Through MySQLi Result Sets in 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!

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