PHP
Referenzliste
mysql_affected_rows
MySQL-Funktionen
Befehl:
int mysql_affected_rows ([ resource $Verbindungs-Kennung ] )
Parameter-Liste:
Beschreibung | |
---|---|
Die MySQL-Verbindung. Wird die Verbindungskennung nicht angegeben, wird die letzte durch mysql_connect() geöffnete Verbindung angenommen. Falls keine solche Verbindung gefunden wird, wird versucht, eine Verbindung aufzubauen, wie es beim Aufruf von mysql_connect() ohne Angabe von Argumenten der Fall wäre. Falls zufällig keine Verbindung gefunden oder aufgebaut werden kann, wird eine Warnung der Stufe E_WARNING erzeugt. |
Rückgabewerte:
Gibt bei Erfolg die Anzahl betroffener Datensätze und -1 falls die letzte Abfrage fehlschlug zurück.
War die letzte Anfrage ein DELETE-Anweisung ohne WHERE Bedingung, wurden alle Datensätze aus der Tabelle gelöscht. Für MySQL Versionen vor 4.1.2 wird diese Funktion hier aber Null (0) zurückliefern.
Benutzen Sie UPDATE wird MySQL keine Spalten aktualisieren, bei denen der neue dem alten Wert entpspricht. Das kann dazu führen, dass mysql_affected_rows() nicht die tatsächliche Anzahl der betroffenen Zeilen liefert, sondern nur die, die wörtlich durch die Anfrage betroffen sind.
REPLACE Anfragen löschen zunächst den Eintrag mit dem gleichen
War die letzte Anfrage ein DELETE-Anweisung ohne WHERE Bedingung, wurden alle Datensätze aus der Tabelle gelöscht. Für MySQL Versionen vor 4.1.2 wird diese Funktion hier aber Null (0) zurückliefern.
Benutzen Sie UPDATE wird MySQL keine Spalten aktualisieren, bei denen der neue dem alten Wert entpspricht. Das kann dazu führen, dass mysql_affected_rows() nicht die tatsächliche Anzahl der betroffenen Zeilen liefert, sondern nur die, die wörtlich durch die Anfrage betroffen sind.
REPLACE Anfragen löschen zunächst den Eintrag mit dem gleichen
Beschreibung:
Liefert die Anzahl betroffener Datensätze durch die letzte INSERT, UPDATE oder DELETE Anweisung, die mit Verbindungs-Kennung assoziiert ist.
Aktiv in Version:
(PHP 4, PHP 5, PHP 7)
Hinweis:
Hinweis:
Falls Sie Transaktionen verwenden, müssen Sie mysql_affected_rows() unmittelbar nach Ihrer INSERT, UPDATE, oder DELETE Anfrage aufrufen, nicht nach dem Commit.
Um die Anzahl der gelieferten Datensätze einer SELECT-Anfrage zu erhalten benutzen Sie stattdessen die Funktion mysql_num_rows().
mysql_affected_rows() zählt keine Zeilen, die implizit durch die Nutzung von ON DELETE CASCADE und/oder ON UPDATE CASCADE in Fremmschlüssel-Bedingungen betroffen sind.
Warnung:
Warnung:
Diese Erweiterung ist ab PHP 5.5.0 veraltet und wird in der Zukunft entfernt werden. Stattdessen wird der MySQLi oder PDO_MYSQL Verlängerung verwendet werden. Siehe auch MySQL: Auswahl einer API Führung und bezogenen FAQ für weitere Informationen. Alternativen zu dieser Funktion sind:
Siehe auch:
Liefert die Anzahl der Zeilen im Ergebnis
Liefert Informationen über die zuletzt ausgeführte Anfrage zurück
mysql_affected_rows() - Beispiel:
Eingabe:
<?php $link = mysql_connect('localhost', 'mysql_user', 'mysql_password'); if (!$link) { die('Keine Verbindung möglich: ' . mysql_error()); } mysql_select_db('mydb'); /* dies sollte die korrekte Anzahl gelöschter Datensätze zurückgeben */ mysql_query('DELETE FROM mytable WHERE id < 10'); printf("Gelöschte Datensätze: %d\n", mysql_affected_rows()); /* mit einer WHERE Bedingung, die niemals wahr ist, sollte 0 zurückgegeben werden */ mysql_query('DELETE FROM mytable WHERE 0'); printf("Gelöschte Datensätze: %d\n", mysql_affected_rows()); ?>
Ausgabe:
Gel�schte Datens�tze: 10
Gel�schte Datens�tze: 0
Prim�rschl�ssel und f�gen dann den neuen Eintrag ein. Diese Funktion gibt in diesem Fall die Summe aus gel�schten und eingef�gten Eintr�gen zur�ck.
Gel�schte Datens�tze: 0
Prim�rschl�ssel und f�gen dann den neuen Eintrag ein. Diese Funktion gibt in diesem Fall die Summe aus gel�schten und eingef�gten Eintr�gen zur�ck.
mysql_affected_rows() - Beispiel 2: mit Transaktionen
Eingabe:
<?php $link = mysql_connect('localhost', 'mysql_user', 'mysql_password'); if (!$link) { die('keine Verbindung möglich: ' . mysql_error()); } mysql_select_db('mydb'); /* Update der Datensätze */ mysql_query("UPDATE mytable SET used=1 WHERE id < 10"); printf ("Updated records: %d\n", mysql_affected_rows()); mysql_query("COMMIT"); ?>
Ausgabe:
Updated Records: 10
MySQL-Funktionen