(PHP 5, PHP 7)
mysqli_stmt::$affected_rows -- mysqli_stmt_affected_rows — Retourne le nombre total de lignes modifiées, effacées ou insérées par la dernière requête
Style orienté objet
Style procédural
Retourne le nombre de lignes affectées par une requête INSERT, UPDATE ou DELETE.
La fonction mysqli_stmt_affected_rows() ne fonctionne que sur les requêtes qui modifient la table. Si vous désirez récupérer le nombre de lignes retournées par une requête SELECT, utilisez plutôt la requête mysqli_stmt_num_rows().
stmt
Style procédural uniquement : Un identifiant de requête retourné par la fonction mysqli_stmt_init().
Un entier supérieur à zéro indique le nombre de lignes affectées ou retrouvées. Zéro indique qu'aucun enregistrement n'a été modifié par une requête UPDATE/DELETE, aucune ligne ne correspond à la clause WHERE dans la requête ou bien qu'aucune requête n'a été encore exécutée. -1 indique que la dernière requête a retourné une erreur. NULL indique qu'un argument invalide a été fourni à la fonction.
Note:
Si le nombre de lignes affectées est plus grand que la valeur entière maximale de PHP, le nombre de lignes affectées sera retourné comme une chaîne de caractères.
Exemple #1 Style orienté objet
<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
/* Vérification de la connexion */
if (mysqli_connect_errno()) {
printf("Échec de la connexion : %s\n", mysqli_connect_error());
exit();
}
/* Création d'une table temporaire */
$mysqli->query("CREATE TEMPORARY TABLE myCountry LIKE Country");
$query = "INSERT INTO myCountry SELECT * FROM Country WHERE Code LIKE ?";
/* Préparation de la requête */
if ($stmt = $mysqli->prepare($query)) {
/* Insertion de la variable */
$code = 'A%';
$stmt->bind_param("s", $code);
/* Exécution de la requête */
$stmt->execute();
printf("Lignes insérées : %d\n", $stmt->affected_rows);
/* Fermeture du traitement */
$stmt->close();
}
/* Fermeture de la connexion */
$mysqli->close();
?>
Exemple #2 Style procédural
<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");
/* Vérification de la connexion */
if (mysqli_connect_errno()) {
printf("Échec de la connexion : %s\n", mysqli_connect_error());
exit();
}
/* Création d'une table temporaire */
mysqli_query($link, "CREATE TEMPORARY TABLE myCountry LIKE Country");
$query = "INSERT INTO myCountry SELECT * FROM Country WHERE Code LIKE ?";
/* Préparation de la requête */
if ($stmt = mysqli_prepare($link, $query)) {
/* Insertion de la variable */
$code = 'A%';
mysqli_stmt_bind_param($stmt, "s", $code);
/* Exécution de la requête */
mysqli_stmt_execute($stmt);
printf("Lignes insérées : %d\n", mysqli_stmt_affected_rows($stmt));
/* Fermeture du traitement */
mysqli_stmt_close($stmt);
}
/* Fermeture de la connexion */
mysqli_close($link);
?>
L'exemple ci-dessus va afficher :
Lignes insérées : 17