(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
Style orienté objet
Style procédural
   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.
  
mysqlSeulement en style procédural : Un objet mysqli retourné par la fonction mysqli_connect() ou par la fonction mysqli_init().
   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.
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