Position actuelle: Accueil> Derniers articles> Comment utiliser MySQLI :: Fonction Use_Result pour les exemples de traitement des résultats de résultats de base

Comment utiliser MySQLI :: Fonction Use_Result pour les exemples de traitement des résultats de résultats de base

gitbox 2025-08-25

Dans PHP, l'extension MySQLI est un outil puissant pour connecter et manipuler les bases de données MySQL. Il fournit plusieurs façons de traiter l'ensemble de résultats des requêtes SQL. Parmi eux, la fonction mysqli :: use_result est une fonction couramment utilisée, particulièrement adaptée aux scénarios où une grande quantité de données est requise ou que vous souhaitez lire le jeu de résultats ligne par ligne. Cet article expliquera en détail comment utiliser la fonction mysqli :: use_result pour le traitement de base de résultats de base et fournir un exemple pour démontrer son application pratique.

Qu'est-ce que MySQLI :: USE_RESULT ?

MySQLI :: USE_RESULT est une méthode de la classe MySQLI qui est utilisée pour obtenir un ensemble de résultats à partir d'une requête SQL exécutée. Lorsque vous appelez cette méthode, elle ne charge pas tous les résultats en mémoire à la fois, mais renvoie un pointeur vers le résultat définie par lesquels les données peuvent être traitées ligne par ligne.

Cette méthode est généralement utilisée avec des requêtes sélectionnées . Lorsque la requête renvoie une grande quantité de données, USE_RESULT peut éviter une consommation excessive de mémoire, améliorant ainsi les performances. Il est différent de la méthode mysqli :: store_result , qui charge tous les résultats de requête en mémoire à la fois.

Étapes de base pour utiliser mysqli :: use_result

  1. Créer une connexion de base de données <br> Tout d'abord, vous devez vous connecter à la base de données MySQL via la fonction mysqli_connect .

  2. Exécuter SQL Query <br> Utilisez la fonction MySQLI_Query pour exécuter des requêtes SQL pour vous assurer que l'instruction de requête est de type sélectionné .

  3. Appelez la méthode use_result <br> Obtenez le résultat de la requête en appelant la méthode mysqli :: use_result .

  4. Ensemble de résultats de traitement <br> Utilisez des fonctions telles que MySQLI_Fetch_Row ou MySQLI_Fetch_assoc pour obtenir la ligne des résultats de la requête par ligne jusqu'à ce qu'il n'y ait plus de données.

  5. Fermez la connexion <br> Une fois la requête et le traitement des résultats terminés, n'oubliez pas de fermer la connexion de la base de données.

Exemple de code

Voici un exemple simple de l'utilisation de la méthode MySQLI :: USE_RESULT pour traiter un ensemble de résultats:

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// étape 1: Créer une connexion de base de données</span></span><span>
</span><span><span class="hljs-variable">$mysqli</span></span><span> = </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title function_ invoke__">mysqli</span></span><span>(</span><span><span class="hljs-string">"localhost"</span></span><span>, </span><span><span class="hljs-string">"username"</span></span><span>, </span><span><span class="hljs-string">"password"</span></span><span>, </span><span><span class="hljs-string">"database"</span></span><span>);

</span><span><span class="hljs-comment">// Vérifiez si la connexion réussit</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$mysqli</span></span><span>-&gt;connect_error) {
    </span><span><span class="hljs-keyword">die</span></span><span>(</span><span><span class="hljs-string">"Échec de la connexion: "</span></span><span> . </span><span><span class="hljs-variable">$mysqli</span></span><span>-&gt;connect_error);
}

</span><span><span class="hljs-comment">// étape 2: mettre en œuvreSQLRequête</span></span><span>
</span><span><span class="hljs-variable">$sql</span></span><span> = </span><span><span class="hljs-string">"SELECT id, name, email FROM users"</span></span><span>;
</span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-variable">$mysqli</span></span><span>-&gt;</span><span><span class="hljs-title function_ invoke__">query</span></span><span>(</span><span><span class="hljs-variable">$sql</span></span><span>);

</span><span><span class="hljs-comment">// 检查Requête是否成功</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$result</span></span><span>) {
    </span><span><span class="hljs-comment">// étape 3: utiliseruse_resultObtenez l&#39;ensemble de résultats</span></span><span>
    </span><span><span class="hljs-variable">$res</span></span><span> = </span><span><span class="hljs-variable">$mysqli</span></span><span>-&gt;</span><span><span class="hljs-title function_ invoke__">use_result</span></span><span>();
    
    </span><span><span class="hljs-comment">// étape 4: Traiter le résultat des résultats ligne par ligne</span></span><span>
    </span><span><span class="hljs-keyword">while</span></span><span> (</span><span><span class="hljs-variable">$row</span></span><span> = </span><span><span class="hljs-variable">$res</span></span><span>-&gt;</span><span><span class="hljs-title function_ invoke__">fetch_assoc</span></span><span>()) {
        </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"ID: "</span></span><span> . </span><span><span class="hljs-variable">$row</span></span><span>[</span><span><span class="hljs-string">'id'</span></span><span>] . </span><span><span class="hljs-string">" - Name: "</span></span><span> . </span><span><span class="hljs-variable">$row</span></span><span>[</span><span><span class="hljs-string">'name'</span></span><span>] . </span><span><span class="hljs-string">" - Email: "</span></span><span> . </span><span><span class="hljs-variable">$row</span></span><span>[</span><span><span class="hljs-string">'email'</span></span><span>] . </span><span><span class="hljs-string">"&lt;br&gt;"</span></span><span>;
    }
} </span><span><span class="hljs-keyword">else</span></span><span> {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Requête失败: "</span></span><span> . </span><span><span class="hljs-variable">$mysqli</span></span><span>-&gt;error;
}

</span><span><span class="hljs-comment">// étape 5: Fermez la connexion de la base de données</span></span><span>
</span><span><span class="hljs-variable">$mysqli</span></span><span>-&gt;</span><span><span class="hljs-title function_ invoke__">close</span></span><span>();
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

Analyse de code

  1. Créer une connexion de base de données:
    Nous établissons d'abord une connexion à la base de données via un nouveau MySQLI et passons le nom d'hôte, le nom d'utilisateur, le mot de passe et le nom de la base de données et le nom de la base de données. Si la connexion échoue, le message d'erreur sera renvoyé via $ mysqli-> connect_error et le script sera terminé.

  2. Exécutez la requête:
    Utilisez la méthode $ mysqli-> requête pour exécuter l'instruction de requête, et une fois la requête réussie, un objet de résultat est renvoyé.

  3. Obtenez l'ensemble de résultats:
    Appelez $ mysqli-> use_result () pour obtenir un pointeur vers un ensemble de résultats, qui pointe vers chaque ligne de données dans la requête.

  4. Résultats du traitement ligne par ligne:
    Nous utilisons la méthode fetch_assoc pour extraire la ligne de données par ligne, qui renvoie un tableau associatif où la clé est le nom de la colonne et la valeur est la valeur de cette colonne.

  5. Fermez la connexion:
    Une fois les données traitées, nous utilisons $ mysqli-> close () pour fermer la connexion de la base de données.

Pour les avantages et les inconvénients de l'utilisation de l'utilisation_result

avantage:

  • Enregistrement de la mémoire: Étant donné que USE_RESULT ne charge pas toutes les données dans la mémoire à la fois, il convient pour gérer de grandes requêtes de données.

  • Améliorer les performances: pour les requêtes de Big Data, les ensembles de résultats de traitement en ligne sont généralement plus efficaces que la lecture de toutes les données à la fois.

défaut:

  • Plusieurs requêtes ne peuvent pas être exécutées en même temps: contrairement à la méthode Store_Result , lors de l'utilisation de l'utilisation_result , seul le jeu de résultats de la requête actuelle peut être traité et plusieurs requêtes ne peuvent pas être exécutées.

  • L'accès aléatoire n'est pas pris en charge: l'ensemble de résultats renvoyé avec use_result ne peut être traité que la ligne par ligne et ne peut être redirigé vers aucune position dans le résultat des résultats à volonté.

en conclusion

MySQLI :: USE_RESULT est un outil très utile lors du traitement de grands ensembles de données, et est particulièrement adapté aux scénarios où les données sont traitées ligne par ligne et ont des exigences strictes sur l'utilisation de la mémoire. Comprendre comment l'utiliser correctement peut aider les développeurs à faire de meilleurs choix dans la gestion des performances et de la mémoire. Si vous avez affaire à de grandes quantités de données ou si vous êtes sensible à l'empreinte mémoire des résultats de la requête, USE_RESULT est une approche intéressante.

  • Étiquettes associées:

    mysqli