Maison  >  Article  >  développement back-end  >  Pourquoi l'utilisation de `mysqli_fetch_array()` plusieurs fois provoque-t-elle des problèmes avec les ensembles de résultats ?

Pourquoi l'utilisation de `mysqli_fetch_array()` plusieurs fois provoque-t-elle des problèmes avec les ensembles de résultats ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-02 23:56:30875parcourir

Why Does Using `mysqli_fetch_array()` Multiple Times Cause Issues With Result Sets?

Appels mysqli_fetch_array() redondants : un piège courant

Accéder plusieurs fois aux résultats d'une requête de base de données peut être une tâche difficile. Une approche courante consiste à utiliser mysqli_fetch_array(), une fonction qui récupère une ligne du jeu de résultats et avance le curseur vers la ligne suivante. Cependant, utiliser plusieurs fois le même ensemble de résultats avec mysqli_fetch_array() peut rencontrer des limitations.

L'exemple de code présenté tente de remplir à la fois une ligne et une colonne de table en utilisant les données d'une base de données, mais il est confronté au problème de ne pas être capable d'utiliser le même jeu de résultats deux fois avec mysqli_fetch_array(). La raison en est que chaque appel à mysqli_fetch_array() fait avancer le curseur vers la ligne suivante.

Pour contourner efficacement cette limitation, il est recommandé de dissocier la manipulation des données de la sortie. Cela signifie d'abord récupérer et stocker les données dans un tableau ou une structure de données, puis les utiliser selon les besoins :

<code class="php">// Select and store data into an array
$db_res = mysqli_query( $db_link, $sql );
$data   = array();
while ($row = mysqli_fetch_assoc($db_res)) {
    $data[] = $row;
}

// Use the stored data multiple times
// Top row
foreach ($data as $row) {</code>

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