mysql_affected_rows

mysql_affected_rows -- Liefert die Anzahl betroffener Datensätze einer vorhergehenden MySQL Operation

Beschreibung

int mysql_affected_rows ( [resource Verbindungs-Kennung])

mysql_affected_rows( ) liefert die Anzahl betroffener Datensätze durch die letzte INSERT , UPDATE oder DELETE Anfrage an den Server , die mit der angegebenen Verbindungs-Kennung mysql_affected_rows( ) liefert die Anzahl betroffener Datensätze durch die letzte INSERT , UPDATE oder DELETE Anfrage an den Server , die mit der angegebenen Verbindungs-Kennung assoziiert wird . Wird die Verbindungskennung nicht angegeben , wird die letzte durch mysql_connect( ) geöffnete Verbindung angenommen .

Anmerkung : Falls Sie Transaktionen verwenden , müssen Sie mysql_affected_rows( ) unmittelbar nach Ihrer INSERT , UPDATE , oder DELETE Anfrage aufrufen , nicht nach dem Commit .

War die letzte Anfrage ein DELETE-Anweisung ohne WHERE Bedingung , wurden alle Datensätze aus der Tabelle gelöscht . Diese Funktion wird aber trotzdem Null ( 0 ) zurückliefern .

Anmerkung : Benutzen Sie UPDATE wird MySQL keine Spalten aktualisieren , bei denen der neue dem alten Wert entpspricht . Das kann dazu führen , dass mysql_affected_rows( ) nicht die tatsächliche Anzahl der betroffenen Zeilen liefert , sondern nur die , die wörtlich durch die Anfrage betroffen sind .

Diese Funktion arbeitet nicht in Verbindung mit SELECT-Anfragen , sondern nur bei Anweisungen , die Datensätze verändern . Um die Anzahl der gelieferten Datensätze einer SELECT-Anfrage zu erhalten , benutzen Sie die Funktion mysql_num_rows( ) .

Falls die letze Anfrage fehlschlägt , liefert diese Funktion -1 zurück .

Beispiel 1 .

 
?php

 
/

 
*

 
Verbindung

 
zur

 
Datenabank

 
*

 
/

 
mysql_pconnect(

 
"localhost"

 
,

 
"mysql_user"

 
,

 
"mysql_password"

 
)

 
or

 
die

 
("Keine

 
Verbindung

 
möglich

 
:

 
"

 
:

 
.

 
mysql_error())

 
;

 
/

 
*

 
Das

 
sollte

 
die

 
korrekte

 
Anzahl

 
gelöschter

 
Datensätze

 
liefern

 
*

 
/

 
mysql_query("DELETE

 
FROM

 
mytable

 
WHERE

 
id

 
10")

 
;

 
printf

 
("Datensätze

 
gelöscht

 
:

 
%d\n"

 
,

 
mysql_affected_rows())

 
;

 
/

 
*

 
Ohne

 
where

 
Bedingung

 
in

 
einer

 
Delete-Anweisung

 
sollte

 
0

 
zurückgegeben

 
werden

 
*

 
/

 
mysql_query("DELETE

 
FROM

 
mytable")

 
;

 
printf

 
("Datensätze

 
gelöscht

 
:

 
%d\n"

 
,

 
mysql_affected_rows())

 
;

 
?



Das obige Beispiel gibt folgendes aus :

 
Datensätze

 
gelöscht

 
:




 
10

 
Datensätze

 
gelöscht

 
:









Beispiel 2 .

 
?php

 
/

 
*

 
Verbindung

 
zur

 
Datenabank

 
*

 
/

 
mysql_pconnect(

 
"localhost"

 
,

 
"mysql_user"

 
,

 
"mysql_password"

 
)

 
or

 
die

 
("Keine

 
Verbindung

 
möglich

 
:

 
"

 
:

 
.

 
mysql_error())

 
;

 
/

 
*

 
Update

 
von

 
Datensätzen

 
*

 
/

 
mysql_query("UPDATE

 
mytable

 
SET

 
used=1

 
WHERE

 
id

 
10")

 
;

 
printf

 
("Veränderte

 
Datensätze

 
:

 
%d\n"

 
,

 
mysql_affected_rows())

 
;

 
mysql_query("COMMIT")

 
;

 
?



Das obige Beispiel gibt folgendes aus :

 
Veränderte

 
Datensätze

 
:











Siehe auch : mysql_num_rows( ) , mysql_info( ) .