(PHP 5, PHP 7)
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
.
Pour les requêtes de sélection, la fonction mysqli_affected_rows() fonctionne de la même façon que la fonction mysqli_num_rows().
link
Seulement en style procédural : Un identifiant de lien 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.
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 = new mysqli("localhost", "my_user", "my_password", "world");
/* Vérification de la connexion */
if (mysqli_connect_errno()) {
printf("Erreur de connexion : %s\n", mysqli_connect_error());
exit();
}
/* 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);
$result->close();
/* Delete table Language */
$mysqli->query("DROP TABLE Language");
/* Fermeture de la connexion */
$mysqli->close();
?>
Style procédural
<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");
if (!$link) {
printf("Connexion impossible à localhost. Erreur : %s\n", mysqli_connect_error());
exit();
}
/* 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));
mysqli_free_result($result);
/* Effacement de la table "language" */
mysqli_query($link, "DROP TABLE Language");
/* Fermeture de la connexion */
mysqli_close($link);
?>
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