(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
.
mysql
Seulement 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