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
346 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!

source:php.cn
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