Beschreibung
int
mysql_affected_rows ( [resource Verbindungs-Kennung])
mysql_affected_rows() liefert die Anzahl
betroffener Datensätze durch die letzte INSERT, UPDATE oder
DELETE Anfrage an den Server, die mit der angegebenen
Verbindungs-Kennung assoziiert wird.
Wird die Verbindungskennung nicht angegeben, wird die letzte
durch mysql_connect() geöffnete Verbindung
angenommen.
Anmerkung:
Falls Sie Transaktionen verwenden, müssen Sie
mysql_affected_rows() unmittelbar nach Ihrer INSERT,
UPDATE, oder DELETE Anfrage aufrufen, nicht nach dem Commit.
War die letzte Anfrage ein DELETE-Anweisung ohne WHERE Bedingung,
wurden alle Datensätze aus der Tabelle gelöscht. Diese Funktion
wird aber trotzdem Null (0) zurückliefern.
Anmerkung:
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.
Diese Funktion arbeitet nicht in Verbindung mit SELECT-Anfragen, sondern
nur bei Anweisungen, die Datensätze verändern. Um die Anzahl der
gelieferten Datensätze einer SELECT-Anfrage zu erhalten, benutzen Sie die
Funktion mysql_num_rows().
Falls die letze Anfrage fehlschlägt, liefert diese Funktion -1 zurück.
Beispiel 1. Delete-Query <?php
/* Verbindung zur Datenabank */
mysql_pconnect("localhost", "mysql_user", "mysql_password") or
die ("Keine Verbindung möglich");
/* Das sollte die korrekte Anzahl gelöschter Datensätze liefern */
mysql_query("DELETE FROM mytable WHERE id < 10");
printf ("Datensätze gelöscht: %d\n", mysql_affected_rows());
/* Ohne where Bedingung in einer Delete-Anweisung sollte 0 zurückgegeben werden */
mysql_query("DELETE FROM mytable");
printf ("Datensätze gelöscht: %d\n", mysql_affected_rows());
?> |
Das obige Beispiel gibt folgendes aus:
Datensätze gelöscht: 10
Datensätze gelöscht: 0 |
|
Beispiel 2. Update-Query <?php
/* Verbindung zur Datenabank */
mysql_pconnect("localhost", "mysql_user", "mysql_password") or
die ("Could not connect");
/* Update von Datensätzen */
mysql_query("UPDATE mytable SET used=1 WHERE id < 10");
printf ("Veränderte Datensätze: %d\n", mysql_affected_rows());
mysql_query("COMMIT");
?> |
Das obige Beispiel gibt folgendes aus:
Veränderte Datensätze: 10 |
|
Siehe auch: mysql_num_rows(),
mysql_info().