Comment récupérer le nombre exact de lignes d'une table MySQL à l'aide de PHP
Obtenir le nombre de lignes dans une table MySQL est une tâche courante dans gestion de la base de données. PHP propose plusieurs options pour cela, en particulier pour ceux qui préfèrent le code procédural.
L'erreur :
Une erreur courante consiste à obtenir le mot « Array » au lieu d'un nombre. . Cela se produit lors de l'utilisation de mysqli_fetch_assoc() qui renvoie un tableau associatif.
Solution 1 : Utiliser les index de tableau
Pour résoudre ce problème, accédez à l'index du tableau correspondant au nom de la colonne . Par exemple :
$count = mysqli_fetch_assoc($result)['COUNT(*)'];
Solution 2 : Utiliser un alias de colonne
Vous pouvez également spécifier un alias pour la colonne de comptage dans votre requête SQL :
$sql = "SELECT COUNT(*) AS cnt FROM news"; $count = mysqli_fetch_assoc($result)['cnt'];
Solution 3 : Utiliser le numérique Tableaux
Une autre option consiste à utiliser mysqli_fetch_row() pour récupérer un tableau numérique :
$count = mysqli_fetch_row($result)[0];
Optimisation PHP 8.1
Si vous utilisez PHP 8.1 ou version ultérieure, vous pouvez simplifier le opération :
$count = mysqli_fetch_column($result);
Éviter d'utiliser mysqli_num_rows
Bien qu'il puisse sembler tentant d'utiliser mysqli_num_rows, cette fonction présente des limitations importantes et doit être évitée pour compter les lignes.
POO Approche
Pour ceux qui préfèrent la programmation orientée objet, le même code pourrait être écrit comme :
$count = $con->query($sql)->fetch_row()[0];
Déclarations préparées
Lorsque vous utilisez des requêtes avec des variables, vous devez utiliser des instructions préparées pour améliorer la sécurité et l'efficacité :
$stmt = $con->prepare("SELECT COUNT(*) FROM news WHERE category=?"); $stmt->bind_param('s', $category); $stmt->execute(); $count = $stmt->get_result()->fetch_row()[0];
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!