# mysqli_stmt::$affected_rows

# mysqli_stmt_affected_rows

(PHP 5, PHP 7, PHP 8)

mysqli_stmt::$affected_rows -- mysqli_stmt_affected_rows — Retourne le nombre total de lignes modifiées, effacées insérées, ou correspondant par la dernière requête

### Description

Style orienté objet

int|string $mysqli_stmt->affected_rows;

Style procédural

mysqli_stmt_affected_rows(mysqli_stmt `$statement`): int|string

Retourne le nombre de lignes affectées par une requête `INSERT`, `UPDATE` ou `DELETE`.

Fonctionne comme mysqli_stmt_num_rows() pour les requêtes `SELECT`.

### Liste de paramètres

`statement`

  Style procédural uniquement : Un objet mysqli_stmt retourné par la fonction mysqli_stmt_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, pour une requête `SELECT`, mysqli_stmt_affected_rows() a été appelé avant d'appeler mysqli_stmt_store_result().

> 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 de mysqli_stmt_affected_rows()

Style orienté objet

`<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
/* 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 */
$stmt = $mysqli->prepare($query);
/* Lie une variable à un paramètre fictif */
$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);
?>`

Style procédural

`<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect("localhost", "my_user", "my_password", "world");
/* 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 */
$stmt = mysqli_prepare($link, $query);
/* Lie une variable à un paramètre fictif */
$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));
?>`

L'exemple ci-dessus va afficher :

    Lignes insérées : 17

### Voir aussi

- mysqli_stmt_num_rows() - Retourne le nombre de lignes extraites du serveur
- mysqli_stmt_store_result() - Stocke un ensemble de résultats dans un tampon interne