Maison > développement back-end > tutoriel php > Pourquoi le « count(*) » de MySQLi renvoie-t-il 1 lors du comptage des lignes du tableau ?

Pourquoi le « count(*) » de MySQLi renvoie-t-il 1 lors du comptage des lignes du tableau ?

Patricia Arquette
Libérer: 2024-11-07 13:37:03
original
421 Les gens l'ont consulté

Why Does MySQLi's `count(*)` Return 1 When Counting Table Rows?

Le nombre de MySQL (*) renvoie 1 de manière inattendue

En comptant le nombre de lignes dans une table MySQL à l'aide de MySQLi, vous pouvez rencontrer un phénomène étrange où $result-> ;num_rows rapporte systématiquement un décompte de 1. Examinons la bonne approche.

Le problème réside dans la façon dont MySQLi gère le résultat d'une requête COUNT(*). Contrairement au résultat d'une requête normale, qui contient un ensemble de lignes, COUNT(*) renvoie une seule ligne avec une seule colonne contenant le nombre.

Pour récupérer avec précision ce nombre, vous devez récupérer la seule ligne. à partir de l'ensemble de résultats. Le code suivant démontre l'utilisation correcte :

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

echo "Count: $count";
Copier après la connexion

En récupérant la première (et unique) ligne et en accédant à sa première colonne, vous obtenez le nombre correct. L'utilisation de $result->num_rows renverra toujours 1 car elle représente le nombre de lignes dans le jeu de résultats, qui est 1 pour les requêtes COUNT(*).

N'oubliez pas, pour les requêtes normales où le résultat contient plusieurs lignes. , l'utilisation de $result->num_rows est appropriée. Cependant, pour les requêtes COUNT(*), suivez toujours le modèle ci-dessus pour récupérer le nombre réel.

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 de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal