Maison >base de données >tutoriel mysql >Quelle est la manière la plus efficace de compter les lignes à l'aide de PDO en PHP ?
La détermination de la méthode optimale pour récupérer le nombre de lignes à l'aide de PDO en PHP reste un sujet de débat. Cet article explore des approches alternatives, fournissant des conseils aux programmeurs à la recherche d'une solution efficace.
Pour les scénarios dans lesquels l'accès aux données réelles n'est pas nécessaire, une approche centrée sur la base de données est recommandée. Avec cette méthode, la base de données effectue le décompte des lignes, renvoyant uniquement la valeur numérique. Le code suivant illustre cette approche :
$sql = "SELECT count(*) FROM `table` WHERE foo = ?"; $result = $con->prepare($sql); $result->execute([$bar]); $number_of_rows = $result->fetchColumn();
Alternativement, PDStatement::rowCount() peut être utilisé pour obtenir le nombre de lignes lorsque les données elles-mêmes sont également récupérées. Cette méthode fonctionne efficacement avec les requêtes mises en mémoire tampon de MySQL (activées par défaut).
Cependant, s'appuyer uniquement sur PDStatement::rowCount() n'est pas garanti pour les autres bases de données. Selon la documentation PDO :
"Pour la plupart des bases de données, PDOStatement::rowCount() ne renvoie pas le nombre de lignes affectées par une instruction SELECT."
Pour surmonter cette limitation, la documentation suggère d'émettre une instruction SELECT COUNT(*) en utilisant PDO::query() puis d'utiliser PDStatement::fetchColumn() pour récupérer le fichier souhaité. value.
Enfin, pour les requêtes simples sans espaces réservés variables, PDO::query() peut être utilisé directement :
$nRows = $pdo->query('select count(*) from blah')->fetchColumn(); echo $nRows;
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!