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(*)` ?
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!