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ů: 0 |
|
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().