PHP PDO : Récupération du nombre de lignes renvoyées par une requête SELECT
Bien que PDO ne dispose pas d'une méthode dédiée pour compter les lignes renvoyées par un Requête SELECT, plusieurs approches alternatives sont disponibles pour obtenir cette fonctionnalité.
Utilisation rowCount()
La classe PDOStatement fournit une méthode rowCount() qui renvoie le nombre de lignes affectées par une instruction UPDATE, INSERT ou DELETE. Cependant, le manuel déconseille d'utiliser rowCount() avec les instructions SELECT, car cela peut ne pas refléter avec précision le nombre de lignes.
Utilisation d'une sous-requête COUNT(*)
Selon Dans la documentation PDO, l'approche recommandée consiste à utiliser une sous-requête PDO::query() avec COUNT(*) pour compter les lignes. Le nombre de lignes peut ensuite être récupéré en utilisant PDOStatement::fetchColumn(). Par exemple :
$stmt = $conn->prepare('SELECT COUNT(*) FROM table'); $stmt->execute(); $rowCount = $stmt->fetchColumn();
Utilisation des méthodes de récupération
Si vous avez déjà récupéré les données dans un ensemble de résultats, vous pouvez utiliser l'une des méthodes fetch* pour récupérer les données et utilisez la fonction count() pour déterminer le nombre de lignes. Par exemple, en utilisant la méthode fetchAll() :
$stmt = $conn->query('SELECT * FROM table'); $rows = $stmt->fetchAll(); $rowCount = count($rows);
Considérations supplémentaires
Lors de l'utilisation d'une requête SELECT avec une clause LIMIT, la méthode rowCount() peut renvoyer le nombre de lignes avant l'application de LIMIT. Par conséquent, il est généralement recommandé d'utiliser l'approche de sous-requête décrite ci-dessus pour garantir l'exactitude.
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!