mysql_affected_rows

mysql_affected_rows -- Zwraca ilość wierszy przetworzonych w poprzedniej operacji MySQL

Opis

int mysql_affected_rows ( [resource identyfikator_połączenia])

mysql_affected_rows( ) zwraca ilość wierszy przetworzonych w ostatniej operacji INSERT , UPDATE lub DELETE na serwerze skojarzonym z podanym identyfikatorem połączenia . Jeżeli identyfikator połączenia nie został podany , domyślnie wykorzystywane jest ostatnie połączenie otwarte przez mysql_connect( ) .

Notatka : Przy korzystaniu z transakcji , funkcję mysql_affected_rows( ) należy wywołać po operacjach INSERT , UPDATE lub DELETE , a nie po zatwierdzeniu (commit ) .

Jeżeli ostatnim zapytaniem było DELETE bez użycia WHERE , wszystkie rekordy zostały usunięte z tabeli , ale funkcja zwróci zero .

Notatka : Podczas operacji UPDATE , MySQL nie aktualizuje kolumn w których nowa wartość jest identyczna z poprzednią . Możliwe jest zatem , że zwrócona przez mysql_affected_rows( ) liczba nie będzie odpowiadać liczbie wierszy pasujących do zapytania , ale tych , które zostały faktycznie zmienione .

mysql_affected_rows( ) nie ma zastosowania do operacji SELECT , lecz tylko do operacji , które modyfikują rekordy . Aby uzyskać liczbę wierszy zwróconych przez SELECT , użyj funkcji mysql_num_rows( ) .

Jeśli ostatnie zapytanie nie powiodło się , funkcja zwróci -1 .

Przykład 1 . Zapytanie DELETE

 
?php

 
/

 
*

 
łączenie

 
z

 
bazą

 
*

 
/

 
mysql_pconnect(

 
'localhost'

 
,

 
'uzytkownik'

 
,

 
'haslo'

 
)

 
or

 
die("Nie

 
można

 
się

 
połączyć

 
:

 
"

 
.

 
mysql_error())

 
;

 
/

 
*

 
to

 
powinno

 
zwrócić

 
poprawną

 
liczbę

 
usuniętych

 
rekordów

 
*

 
/

 
mysql_query("DELETE

 
FROM

 
mytable

 
WHERE

 
id

 
10")

 
;

 
printf

 
("Usuniętych

 
rekordów

 
:

 
%d\n"

 
,

 
mysql_affected_rows())

 
;

 
/

 
*

 
bez

 
warunku

 
'where

 
'

 
zwrócone

 
zostanie

 
0

 
*

 
/

 
mysql_query("DELETE

 
FROM

 
mytable")

 
;

 
printf

 
("Usuniętych

 
rekordów

 
:

 
%d\n"

 
,

 
mysql_affected_rows())

 
;

 
?



Powyższy przykład da następujący wynik :

 
Usuniętych

 
rekordów

 
:




 
10

 
Usuniętych

 
rekordów

 
:









Przykład 2 . Zapytanie UPDATE

 
?php

 
/

 
*

 
łączenie

 
z

 
bazą

 
*

 
/

 
mysql_pconnect(

 
'localhost'

 
,

 
'uzytkownik'

 
,

 
'haslo'

 
)

 
or

 
die("Nie

 
można

 
się

 
połączyć

 
:

 
"

 
.

 
mysql_error())

 
;

 
/

 
*

 
aktualizacja

 
rekordów

 
*

 
/

 
mysql_query("UPDATE

 
mytable

 
SET

 
used=1

 
WHERE

 
id

 
10")

 
;

 
printf

 
("Zaktualizowanych

 
rekordów

 
:

 
%d\n"

 
,

 
mysql_affected_rows())

 
;

 
mysql_query("COMMIT")

 
;

 
?



Powyższy przykład da następujący wynik :

 
Zaktualizowanych

 
rekordów

 
:











Patrz także : mysql_num_rows( ) , mysql_info( ) .