Retourne le nombre de lignes affectées par la dernière opération MySQL

# mysqli::$affected_rows

# mysqli_affected_rows

(PHP 5, PHP 7, PHP 8)

mysqli::$affected_rows -- mysqli_affected_rows — Retourne le nombre de lignes affectées par la dernière opération MySQL

### Description

Style orienté objet

int|string $mysqli->affected_rows;

Style procédural

function mysqli_affected_rows(mysqli `$mysql`): int|string

Retourne le nombre de lignes affectées par la dernière requête `INSERT`, `UPDATE`, `REPLACE` ou `DELETE`. Fonctionne comme mysqli_num_rows() pour les requêtes `SELECT`.

### Liste de paramètres

`mysql`
  Seulement en style procédural : Un objet mysqli retourné par la fonction mysqli_connect() ou mysqli_init().

### Valeurs de retour

Un entier plus grand que zéro indique le nombre de lignes affectées ou recherchées. Zéro indique qu'aucun enregistrement n'a été modifié par une requête du type `UPDATE`, aucune ligne ne correspond à la clause `WHERE` dans la requête ou bien qu'aucune requête n'a été exécutée. `-1` indique que la requête a retourné une erreur ou que mysqli_affected_rows() a été appelé sur une requête `SELECT` non-tampon.

> Note:

> Si le nombre de lignes affectées est plus grand que la valeur maximale (`PHP_INT_MAX`) que peut prendre un entier, le nombre de lignes affectées sera retourné en tant que chaîne de caractères.

### Exemples

Exemple #1 Exemple avec $mysqli->affected_rows

Style orienté objet

    <?php
    mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
    $mysqli = new mysqli("localhost", "my_user", "my_password", "world");

    /* Insertion d'une ligne */
    $mysqli->query("CREATE TABLE Language SELECT * from CountryLanguage");
    printf("Nombre de lignes affectées (INSERT): %d\n", $mysqli->affected_rows);

    $mysqli->query("ALTER TABLE Language ADD Status int default 0");

    /* Modification d'une ligne */
    $mysqli->query("UPDATE Language SET Status=1 WHERE Percentage > 50");
    printf("Nombre de lignes affectées (UPDATE): %d\n", $mysqli->affected_rows);

    /* Effacement d'une ligne */
    $mysqli->query("DELETE FROM Language WHERE Percentage < 50");
    printf("Nombre de lignes affectées (DELETE): %d\n", $mysqli->affected_rows);

    /* Sélection de toutes les lignes */
    $result = $mysqli->query("SELECT CountryCode FROM Language");
    printf("Nombre de lignes affectées (SELECT): %d\n", $mysqli->affected_rows);

    /* Delete table Language */
    $mysqli->query("DROP TABLE Language");
    ?>

Style procédural

    <?php
    mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
    $link = mysqli_connect("localhost", "my_user", "my_password", "world");

    /* Insertion d'une ligne */
    mysqli_query($link, "CREATE TABLE Language SELECT * from CountryLanguage");
    printf("Nombre de lignes affectées (INSERT): %d\n", mysqli_affected_rows($link));

    mysqli_query($link, "ALTER TABLE Language ADD Status int default 0");

    /* Modification d'une ligne */
    mysqli_query($link, "UPDATE Language SET Status=1 WHERE Percentage > 50");
    printf("Nombre de lignes affectées (UPDATE): %d\n", mysqli_affected_rows($link));

    /* Effacement d'une ligne */
    mysqli_query($link, "DELETE FROM Language WHERE Percentage < 50");
    printf("Nombre de lignes affectées (DELETE): %d\n", mysqli_affected_rows($link));

    /* Selection de toutes les lignes */
    $result = mysqli_query($link, "SELECT CountryCode FROM Language");
    printf("Nombre de lignes affectées (SELECT): %d\n", mysqli_affected_rows($link));

    /* Effacement de la table "language" */
    mysqli_query($link, "DROP TABLE Language");
    ?>

Les exemples ci-dessus vont afficher :

    Nombre de lignes affectées (INSERT): 984
    Nombre de lignes affectées (UPDATE): 168
    Nombre de lignes affectées (DELETE): 815
    Nombre de lignes affectées (SELECT): 169

### Voir aussi

- mysqli_num_rows() - Retourne le nombre de lignes dans le jeu de résultats
- mysqli_info() - Retourne des informations à propos de la dernière requête exécutée

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