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(
)
.