Retourne le nombre de lignes affectées par le dernier appel à la fonction PDOStatement::execute()

# PDOStatement::rowCount

(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 function PDOStatement::rowCount(): int

PDOStatement::rowCount() retourne le nombre de lignes affectées par la dernière requête DELETE, INSERT ou UPDATE exécutée par l'objet `PDOStatement` correspondant.

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 il ne faut pas s'y fier pour des applications portables.

> Note:

> Cette méthode retourne toujours "0" (zéro) avec le pilote PostgreSQL, quand l'attribut de déclaration `PDO::ATTR_CURSOR` est défini à `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, utiliser PDO::query() pour faire une requête SELECT COUNT(*), puis utiliser 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 a 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

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open