# 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

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` associée au paramètre `link`.

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