my_ulonglong mysql_affected_rows(MYSQL
*mysql)
Description
Retourne le nombre de lignes modifiées par la dernière
commande UPDATE
, supprimées par la
dernière commande DELETE
ou insérée par
la dernière commande INSERT
. Peut être
appelée immédiatement après
mysql_query()
pour les commandes
UPDATE
, DELETE
, ou
INSERT
. Pour la commande
SELECT
,
mysql_affected_rows()
fonctionne comme
mysql_num_rows()
.
Valeur de retour
Un entier supérieur à zéro indique le nombre de lignes
affectées ou sélectionnées. Zéro indique qu'aucun
enregistrement n'a été mis à jour pour une requête
UPDATE
, qu'aucune lignes n'a correspondu à
la clause WHERE
dans la requête ou que
celle ci n'a pas encore été exécutée. −1 indique que la
requête a renvoyé une erreur ou que, pour une requête
SELECT
,
mysql_affected_rows()
a été appelée
avant mysql_store_result()
. Comme
mysql_affected_rows()
retourne une valeur
non signée, vous pouvez comparer avec −1 en comparant la
valeur retournée par (my_ulonglong)-1
(ou
par (my_ulonglong)~0
, ce qui est la même
chose).
Erreurs
Aucune.
Exemple
mysql_query(&mysql,"UPDATE products SET cost=cost*1.25 WHERE group=10"); printf("%ld produits mis à jour",(long) mysql_affected_rows(&mysql));
Si on spécifie l'option CLIENT_FOUND_ROWS
en se connectant à mysqld
,
mysql_affected_rows()
retournera le nombre
d'enregistrements correspondants à la clause
WHERE
pour une requête
UPDATE
.
Notez que quand on utilise une commande
REPLACE
,
mysql_affected_rows()
retournera 2 si le
nouvel enregistrement en a remplacé un ancien. 2 en retour
car dans ce cas, l'ancienne ligne a été supprimé puis la
nouvelle insérée.
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.