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";
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!