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 ?

Quelle est la manière la plus efficace de compter les lignes à l'aide de PDO en PHP ?

Mary-Kate Olsen
Libérer: 2024-12-24 08:59:14
original
123 Les gens l'ont consulté

What's the Most Efficient Way to Count Rows Using PDO in PHP?

Comptage des lignes avec PDO

Contexte

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.

Approche centrée sur la base de données

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();
Copier après la connexion

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).

Approche centrée sur PDO

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;
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal