Exposer la faille dans le comptage de lignes de MySQLi
Pour tenter de déterminer le nombre de lignes d'une table, un extrait de code a été implémenté :
$result = $db->query("SELECT COUNT(*) FROM `table`;"); $count = $result->num_rows;
Cependant, la valeur du compteur reste systématiquement à 1, quel que soit le nombre réel de lignes dans la table.
Lors d'un débogage plus approfondi, le problème devient évident : la requête exécutée renvoie un enregistrement unique avec la valeur de comptage stockée dans la première colonne. Par conséquent, pour accéder au résultat, l'enregistrement doit être récupéré :
$result = $db->query("SELECT COUNT(*) FROM `table`"); $row = $result->fetch_row(); echo '#: ', $row[0];
Cette approche garantit le nombre correct de lignes dans la table, même lorsque la requête est exécutée via phpMyAdmin.
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!