Maison > Article > développement back-end > Pourquoi est-ce que j'accède uniquement à la première valeur de mon jeu de résultats MySQLi ?
Itération sur les ensembles de résultats dans MySQLi
Lorsque vous travaillez avec des ensembles de résultats dans MySQLi, vous pouvez rencontrer un problème où seule la première valeur est accessible lors de l'itération. Cela résulte généralement de l'utilisation de fetch_array() et d'une mauvaise compréhension de son comportement.
Comportement par défaut de fetch_array()
Par défaut, fetch_array() renvoie un tableau avec les deux clés indexées et associatives, appelées MYSQLI_BOTH. Pour spécifier un jeu de résultats avec uniquement des clés indexées ou associatives, utilisez respectivement MYSQLI_NUM ou MYSQLI_ASSOC.
Alternatives à fetch_array()
Plutôt que de compter sur fetch_array(), considérer plus efficace et concis alternatives :
while ($row = $output->fetch_array(MYSQLI_ASSOC)) { echo $row['uid']; }
while ($row = $output->fetch_array(MYSQLI_NUM)) { echo $row[0]; }
foreach ($output as $row) { echo $row['uid']; }
Dépannage Itération
L'utilisation de $i pour incrémenter les clés indexées ne convient pas aux ensembles de résultats avec des clés associatives. Par exemple, l'ensemble de résultats peut avoir des valeurs dans la structure suivante :
[ 0 => [0 => 1, 'uid' => 1], 1 => [0 => 2, 'uid' => 2], 2 => [0 => 3, 'uid' => 3]... ]
Dans ce scénario, $row[1] n'existera pas dans les itérations suivantes, ce qui entraînera le problème.
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!