Manuel PHP
Précédent |  | Suivant

# mysqli_affected_rows

(PHP 5)

mysqli_affected_rows

(no version information, might be only in CVS)

mysqli->affected_rows -- Retourne le nombre de lignes affectées par la dernière opération MySQL

## Description

Style procédural

mixed mysqli_affected_rows ( object link)

Style orienté objet (méthode)

class mysqli {
mixed affected_rows
}

mysqli_affected_rows() retourne le nombre de lignes affectées par la dernière requête INSERT, UPDATE, ou DELETE associée au paramètre link. Si la dernière requête était invalide, cette fonction retournera -1.

> Note : Pour les requètes de type SELECT, mysqli_affected_rows() est identique à la fonction mysqli_num_rows().

La fonction mysqli_affected_rows() ne fonctionne que pour les requêtes qui modifient une table. Pour connaître le nombre de lignes retournées par une requête SELECT, utilisez la fonction mysqli_num_rows().

## 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.

> Note : Si le nombre de lignes affectées est plus grand que la valeur maximale que peut prendre un entier, le nombre de lignes affectées sera retourné en tant que chaîne de caractères.

## Voir aussi

mysqli_num_rows() et mysqli_info().

## Exemples

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("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();
/* Effacement de la table "Language" */
$mysqli->query("DROP TABLE Language");
/* Fermeture de la connexion */
$mysqli->close();
?>`

Exemple 2. 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);
?>`

L'exemple ci-dessus va afficher :

    Affected rows (INSERT): 984
    Affected rows (UPDATE): 168
    Affected rows (DELETE): 815
    Affected rows (SELECT): 169

Précédent | Sommaire | Suivant
Extension MySQL améliorée | Niveau supérieur | mysqli_autocommit