Popis
int
mysql_affected_rows
( [resource spojeni])
mysql_affected_rows(
)
vrátí
počet
záznamů
ovlivněných
posledním
použitím
dotazu
INSERT
,
UPDATE
nebo
DELETE
,
kterému
odpovídá
spojeni
.
Není-li
identifikátor
spojení
uveden
,
použije
se
poslední
spojení
otevřené
pomocí
mysql_connect(
)
.
Poznámka
:
Používáte-li
transakce
,
je
nutné
mysql_affected_rows(
)
volat
až
po
dotazu
INSERT
,
UPDATE
nebo
DELETE
,
nikoli
hned
po
potvrzení
transakce
.
Byl-li
poslední
dotaz
DELETE
bez
části
WHERE
,
budou
smázany
všechny
záznamy
z
tabulky
,
ale
tato
funce
vrátí
nulu
.
Poznámka
:
Při
použití
UPDATE
,
MySQL
neuloží
sloupce
,
ve
kterých
je
nová
hodnota
shodná
s
původní
.
Toto
může
způsobit
,
že
mysql_affected_rows(
)
nemusí
vždy
přesně
souhlasit
se
skutečným
počtem
ovlivněných
řádků
.
mysql_affected_rows(
)
nelze
použít
s
dotazy
SELECT
,
ale
jen
s
takovými
,
které
mění
záznamy
.
K
zjištění
počtu
řádků
vrácených
dotazem
SELECT
použijte
funkci
mysql_num_rows(
)
.
Je-li
poslední
dotaz
chybný
,
funkce
vrátí
-1
.
Příklad
1
.
Dotaz
typu
DELETE
(
mazání
)
?php
/
*
připojení
k
databázi
*
/
mysql_pconnect(
"localhost"
,
"mysql_uziv"
,
"mysql_heslo"
)
or
die
("Nelze
se
připojit")
;
/
*
tohle
vrátí
správný
počet
smazaných
záznamů
*
/
mysql_query("DELETE
FROM
moje_tabulka
WHERE
id
10")
;
printf
("Smazáno
záznamů
:
%d\n"
,
mysql_affected_rows())
;
/
*
bez
použití
klauzule
where
v
dotazu
typu
DELETE
,
bude
vrácena
0
*
/
mysql_query("DELETE
FROM
moje_tabulka")
;
printf
("Smazáno
záznamů
:
%d\n"
,
mysql_affected_rows())
;
?
|
Předchozí
příklad
by
měl
následující
výstup
:
Smazáno
záznamů
:
10
Smazáno
záznamů
:
|
|
Příklad
2
.
Dotaz
typu
UPDATE
(
změna
)
?php
/
*
připojení
k
databázi
*
/
mysql_pconnect(
"localhost"
,
"mysql_uziv"
,
"mysql_heslo"
)
or
die
("Nelze
se
připojit")
;
/
*
Změna
záznamů
*
/
mysql_query("UPDATE
moje_tabulka
SET
used=1
WHERE
id
10")
;
printf
("Změněno
záznamů
:
%d\n"
,
mysql_affected_rows())
;
mysql_query("COMMIT")
;
?
|
Předchozí
příklad
by
měl
následující
výstup
:
|
Dále
také
:
mysql_num_rows(
)
,
mysql_info(
)
.