Funkcja mysql_affected_rows() w PHP
Definicja i użycie
Funkcja mysql_affected_rows() zwraca liczbę wierszy rekordów wpływających na ostatnią operację MySQL.
Gramatyka
mysql_affected_rows(link_identifier)
Parametry | Opis |
---|---|
link_identifier | Wymagane. Identyfikator połączenia MySQL. Jeśli nie został określony, domyślnie używa ostatniego mysql_connect() Otwarte połączenie. Jeśli nie znajdzie połączenia, funkcja spróbuje wywołać mysql_connect() Utwórz połączenie i użyj go. W przypadku awarii, braku połączenia lub niemożności utworzenia połączenia, system wydaje ostrzeżenie na poziomie E_WARNING. |
Opis
Otrzymać ostatnią z link_identifier Liczba wierszy rekordów wpływających na zapytania INSERT, UPDATE lub DELETE.
Zwraca wartość
Zwraca liczbę wierszy dotkniętych, jeśli wykonanie się powiodło, w przeciwnym razie funkcja zwraca -1.
Jeśli ostatnia operacja to DELETE bez warunków (WHERE), wszystkie rekordy w tabeli zostaną usunięte, ale wartość zwracana przez tę funkcję przed wersją 4.1.2 zawsze wynosi 0.
Podczas używania zapytań UPDATE MySQL nie aktualizuje kolumn, w których wartości przed i po aktualizacji są takie same. W rezultacie wartość zwracana przez funkcję mysql_affected_rows() niekoniecznie jest liczba rekordów spełniających warunki zapytania, tylko liczba rzeczywiście zmodyfikowanych rekordów.
Wyrażenie REPLACE najpierw usuwa rekordy o tym samym kluczu głównym, a następnie wstawia nowy rekord. Funkcja zwraca liczbę usuniętych rekordów plus liczbę wstawionych rekordów.
Przykład
<?php $con = mysql_connect("localhost","mysql_user","mysql_pwd"); if (!$con) { die("Nie można połączyć: " . mysql_error()); } mysql_select_db("mydb"); mysql_query("DELETE FROM mytable WHERE id < 5"); $rc = mysql_affected_rows();; echo "Usunięte rekordy: " . $rc; mysql_close($con); ?>
Wynik:
Usunięte rekordy: 4