(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.1.0)
PDOStatement::rowCount —
Retourne le nombre de lignes affectées par le dernier
appel à la fonction PDOStatement::execute()
Description
public
PDOStatement::rowCount(): int
Si la dernière requête SQL exécutée par l'objet PDOStatement
associé est une requête de type SELECT, quelques bases de données
retourneront le nombre de lignes retournées par cette requête. Néanmoins,
ce comportement n'est pas garanti pour toutes les bases de données
et ne devrait pas être exécuté pour des applications portables.
Note:
Cette méthode retourne toujours "0" (zéro) avec le pilote SQLite,
et avec le pilote PostgreSQL uniquement quand l'attribut de déclaration
PDO::ATTR_CURSOR
est définie à
PDO::CURSOR_SCROLL
.
Liste de paramètres
Cette fonction ne contient aucun paramètre.
Valeurs de retour
Retourne le nombre de lignes.
Erreurs / Exceptions
Émet une erreur de niveau E_WARNING
si l'attribut PDO::ATTR_ERRMODE
est défini
à PDO::ERRMODE_WARNING
.
Lève une exception PDOException si l'attribut PDO::ATTR_ERRMODE
est défini
à PDO::ERRMODE_EXCEPTION
.
Exemples
Exemple #1 Retourne le nombre de lignes effacées
pdostatement::rowCount() retourne
le nombre de lignes affectées par une requête DELETE, INSERT,
ou UPDATE.
<?php
/* Effacement de toutes les lignes de la table FRUIT */
$del = $dbh->prepare('DELETE FROM fruit');
$del->execute();
/* Retourne le nombre de lignes effacées */
print("Retourne le nombre de lignes effacées :\n");
$count = $del->rowCount();
print("Effacement de $count lignes.\n");
?>
Résultat de l'exemple ci-dessus est similaire à :
Retourne le nombre de lignes effacées :
Effacement de 9 lignes.
Exemple #2 Comptage des lignes retournées par une requête SELECT
Pour la plupart des bases de données, pdostatement::rowCount()
ne retourne pas le nombre de lignes affectées par une requête SELECT.
À la place, utilisez PDO::query() pour faire une requête
SELECT COUNT(*), puis utilisez pdostatement::fetchColumn()
pour récupérer le nombre de lignes correspondantes.
<?php
$sql = "SELECT COUNT(*) FROM fruit WHERE calories > 100";
$res = $conn->query($sql);
$count = $res->fetchColumn();
print "Il y a " . $count . " ligne(s) correspondante(s).";
?>
Résultat de l'exemple ci-dessus est similaire à :
Il y 2 ligne(s) correspondante(s).
Voir aussi
- pdostatement::columnCount() - Retourne le nombre de colonnes dans le jeu de résultats
- pdostatement::fetchColumn() - Retourne une colonne depuis la ligne suivante d'un jeu de résultats
- PDO::query() - Prépare et Exécute une requête SQL sans marque substitutive