Maison > Article > développement back-end > Pourquoi COUNT(*) renvoie-t-il 1 dans MySQLi lorsque la table comporte plus de lignes ?
Erreurs de décompte de la fonction Count(*) dans MySQLi
Lors de l'exécution d'une requête COUNT(*) dans MySQLi, les utilisateurs peuvent rencontrer un comportement inattendu où le résultat renvoie systématiquement 1 quelle que soit la taille réelle de la table. Cet écart entre MySQLi et phpMyAdmin peut être déroutant.
Enquête et solution
L'inadéquation survient parce que MySQLi représente le résultat COUNT(*) sous la forme d'un jeu d'enregistrements à une seule ligne. Pour accéder au nombre réel, le résultat doit être récupéré à l'aide de la méthode fetch_row().
Par conséquent, la bonne façon de déterminer le nombre de lignes à l'aide de MySQLi est :
$result = $db->query("SELECT COUNT(*) FROM `table`"); $row = $result->fetch_row(); echo '#: ', $row[0];
Dans cette version modifiée code, la propriété num_rows n'est pas utilisée car le résultat est un jeu d'enregistrements à une seule ligne et, par conséquent, son rowCount est toujours 1. Au lieu de cela, la méthode fetch_row() est utilisée pour récupérer le nombre réel stocké dans la première colonne du jeu d'enregistrements.
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!