Maison  >  Article  >  développement back-end  >  Pourquoi la méthode `query()` de MySQLi renvoie-t-elle un nombre de lignes inattendu lors de l'utilisation de `COUNT(*)` ?

Pourquoi la méthode `query()` de MySQLi renvoie-t-elle un nombre de lignes inattendu lors de l'utilisation de `COUNT(*)` ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-07 06:55:03623parcourir

Why Does MySQLi's `query()` Method Return an Unexpected Row Count When Using `COUNT(*)`?

La méthode de requête MySQL génère un nombre de lignes inattendu

Lorsque vous tentez de récupérer le nombre de lignes d'une table MySQL à l'aide de la fonction COUNT(*) et Avec la méthode query() de l'objet MySQLi, vous pouvez rencontrer un résultat inattendu où le nombre de lignes renvoyé est toujours 1. Cela peut différer du résultat correct lors de l'exécution de la même requête à l'aide d'outils comme phpMyAdmin.

Comprendre the Issue

La propriété num_rows de l'objet MySQLi_Result reflète le nombre de lignes dans l'ensemble de résultats renvoyé par la requête exécutée. Cependant, lorsque vous utilisez la fonction COUNT(*), le résultat est une seule ligne contenant la valeur du nombre au lieu de plusieurs lignes comme dans les résultats de requêtes classiques.

L'approche correcte

Pour obtenir la valeur de comptage correcte à l'aide de MySQLi, vous devez récupérer la ligne de résultat unique de l'objet MySQLi_Result et récupérer la valeur de comptage de cette ligne. Ceci peut être réalisé à l'aide de la méthode fetch_row(), qui renvoie un tableau de valeurs de colonne à partir de la première ligne du jeu de résultats.

Voici un exemple illustrant l'approche correcte :

$result = $db->query("SELECT COUNT(*) FROM `table`");
$row = $result->fetch_row();
$count = $row[0];
echo 'Row count: ', $count;

Ce code récupère la valeur de comptage de la première ligne et l'imprime.

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