Nombre de lignes avec PDO : solutions optimisées
Lorsque vous travaillez avec PDO en PHP pour récupérer le nombre de lignes, il est important de considérer la meilleure approche basée sur sur vos exigences. Bien que la tentation puisse être d'utiliser fetchAll() pour sa simplicité, cela peut s'avérer inefficace pour les grands ensembles de données.
Pour le nombre de lignes uniquement
Si vous avez besoin du nombre de lignes mais pas les données elles-mêmes, envisagez d'utiliser une requête comme celle-ci :
$sql = "SELECT count(*) FROM `table` WHERE foo = ?"; $result = $con->prepare($sql); $result->execute([$bar]); $number_of_rows = $result->fetchColumn();
Cette approche utilise la fonctionnalité de comptage intégrée de la base de données pour fournir un nombre de lignes précis sans récupération de données inutiles.
Pour le nombre de lignes avec données
Si vous avez besoin à la fois du nombre de lignes et des données, PDO fournit PDOStatement::rowCount(). Cependant, cette méthode peut ne pas fonctionner pour tous les pilotes. 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. Utilisez plutôt PDO::query() pour émettre un SELECT COUNT (*) avec les mêmes prédicats que votre instruction SELECT prévue, puis utilisez PDOStatement::fetchColumn() pour récupérer le nombre de lignes qui seront renvoyées."
In Dans de tels cas, vous pouvez utiliser fetchAll() pour récupérer les données, puis utiliser count() pour déterminer le nombre de lignes.
Exemple : Utilisation de query() pour le nombre de lignes
Pour les requêtes sans aucune variable, vous pouvez utiliser query() au lieu des instructions préparées :
$nRows = $pdo->query('select count(*) from blah')->fetchColumn(); echo $nRows;
En comprenant ces techniques optimisées, vous pouvez récupérer efficacement le nombre de lignes à l'aide de PDO dans divers scénarios.
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!