Manuel PHP
Précédent |  | Suivant

# mysql_affected_rows

(PHP 3, PHP 4 , PHP 5)

mysql_affected_rows -- Retourne le nombre de lignes affectées lors de la dernière requête SQL MySQL

## Description

int mysql_affected_rows ( [resource link_identifier])

mysql_affected_rows() retourne le nombre de lignes affectées lors de la dernière requête INSERT, UPDATE ou DELETE sur le serveur associé à l'identifiant de connexion link_identifier. Si link_identifier n'est pas précisé, mysql_affected_rows() utilise la dernière connexion ouverte.

> Note : Si vous utilisez les transactions, vous devez appeler mysql_affected_rows() après votre INSERT, UPDATE, ou DELETE et non après la validation.

Si la dernière requête était un DELETE sans clause WHERE, tous les enregistrements ont été effacés, mais mysql_affected_rows() va retourner 0.

mysql_affected_rows() n'est pas possible après un SELECT, car elle ne fonctionne qu'après des commandes qui modifient les enregistrements. Pour connaître le nombre de lignes retournées par un SELECT, utilisez mysql_num_rows().

Si la dernière requête a échoué, mysql_affected_rows() retourne -1.

Exemple 1. Requête SQL Delete

`<?php
/* connexion à la base */
mysql_pconnect("localhost", "mysql_user", "mysql_password") or
die("Impossible de se connecter : " . mysql_error());
/* Ceci devrait retourner le nombre correct de lignes effacées */
mysql_query("DELETE FROM mytable WHERE id < 10");
printf ("Records deleted: %d\n", mysql_affected_rows());
/* Sans la clause WHERE, il retourne 0 */
mysql_query("DELETE FROM mytable");
printf ("Lignes effacées : %d\n", mysql_affected_rows());
?>`

Le script ci-dessus devrait afficher :

    Lignes effacées : 10
    Lignes effacées : 0

Exemple 2. Requête SQL Update

`<?php /* connexion à la base */ mysql_pconnect("localhost", "mysql_user", "mysql_password") or die("Impossible de se connecter : " . mysql_error()); /* Requête de modification Update */ mysql_query("UPDATE mytable SET used=1 WHERE id < 10"); printf ("Lignes modifiées : %d\n", mysql_affected_rows()); mysql_query("COMMIT"); ?>`

Le script ci-dessus devrait afficher :

    Lignes modifiées : 10

Voir aussi mysql_num_rows() et mysql_info().

Précédent | Sommaire | Suivant
MySQL | Niveau supérieur | mysql_change_user