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

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

DDD
Libérer: 2024-11-23 04:04:17
original
1084 Les gens l'ont consulté

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'];
}
Copier après la connexion

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++;
}
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal