Comment compter les lignes dans PHP PDO
PDO, la bibliothèque standard de l'industrie pour accéder aux bases de données en PHP, ne dispose pas d'une méthode dédiée pour compter lignes renvoyées par les requêtes SELECT. Une solution de contournement courante consiste à utiliser count($results->fetchAll()), mais ce n'est pas toujours l'approche la plus efficace.
PDOStatement::rowCount
Le L'objet d'instruction PDO expose une méthode rowCount. Cependant, selon la documentation officielle de PDO :
For most databases, PDOStatement::rowCount() does not return the number of rows affected by a SELECT statement. Instead, use PDO::query() to issue a SELECT COUNT(*) statement with the same predicates as your intended SELECT statement, then use PDOStatement::fetchColumn() to retrieve the number of rows that will be returned. Your application can then perform the correct action.
Comptage des lignes avec un jeu d'enregistrements existant
Si vous avez déjà récupéré les données, vous pouvez utiliser la fonction de comptage sur le tableau de résultats :
$stmt = $db->prepare('SELECT * FROM table'); $stmt->execute(); $rowCount = count($stmt->fetchAll(PDO::FETCH_ASSOC));
Vous pouvez également compter sur un parcours orienté objet et compter les lignes manuellement :
$rowCount = 0; while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) { $rowCount++; }
N'oubliez pas que la récupération de toutes les lignes en mémoire peut avoir un impact sur les performances de l'application, surtout avec de grands ensembles de résultats. Envisagez la pagination ou d'autres techniques d'optimisation si nécessaire.
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!