mysql_affected_rows
(PHP 4, PHP 5)
mysql_affected_rows — Liefert die Anzahl betroffener Datensätze einer vorhergehenden MySQL Operation
Diese Erweiterung ist seit PHP 5.5.0 als veraltet markiert und wurde in PHP 7.0.0 entfernt. Verwenden Sie stattdessen die Erweiterungen MySQLi oder PDO_MySQL. Weitere Informationen finden Sie im Ratgeber MySQL: Auswahl einer API und den zugehörigen FAQ. Alternativen zu dieser Funktion umfassen:
Beschreibung
$link_identifier
= NULL
] ) : int
Liefert die Anzahl betroffener Datensätze durch die letzte INSERT, UPDATE oder
DELETE Anweisung, die mit link_identifier
assoziiert
ist.
Parameter-Liste
-
Verbindungs-Kennung
-
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 entspricht. 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 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.
Im Falle von "INSERT ... ON DUPLICATE KEY UPDATE"-Queries ist der Rückgabewert 1, wenn eine Einfügung vorgenommen wurde oder 2, wenn eine bestehende Zeile aktualisiert wurde.
Beispiele
Beispiel #1 mysql_affected_rows() Beispiel
<?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());
?>
Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:
Gelöschte Datensätze: 10 Gelöschte Datensätze: 0
Beispiel #2 mysql_affected_rows() Beispiel mit Transaktionen
<?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");
?>
Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:
Updated Records: 10
Anmerkungen
Hinweis: Transaktionen
Falls Sie Transaktionen verwenden, müssen Sie mysql_affected_rows() unmittelbar nach Ihrer INSERT, UPDATE, oder DELETE Anfrage aufrufen, nicht nach dem Commit.
Hinweis: SELECT Anweisungen
Um die Anzahl der gelieferten Datensätze einer SELECT-Anfrage zu erhalten benutzen Sie stattdessen die Funktion mysql_num_rows().
Hinweis: Kaskadierende Fremdschlüssel-Beziehungen
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.
Siehe auch
- mysql_num_rows() - Liefert die Anzahl der Zeilen im Ergebnis
- mysql_info() - Liefert Informationen über die zuletzt ausgeführte Anfrage zurück
Deutsche Übersetzung
Sie haben gebeten, diese Seite auf Deutsch zu besuchen. Momentan ist nur die Oberfläche übersetzt, aber noch nicht der gesamte Inhalt.Wenn Sie mir bei Übersetzungen helfen wollen, ist Ihr Beitrag willkommen. Alles, was Sie tun müssen, ist, sich auf der Website zu registrieren und mir eine Nachricht zu schicken, in der Sie gebeten werden, Sie der Gruppe der Übersetzer hinzuzufügen, die Ihnen die Möglichkeit gibt, die gewünschten Seiten zu übersetzen. Ein Link am Ende jeder übersetzten Seite zeigt an, dass Sie der Übersetzer sind und einen Link zu Ihrem Profil haben.
Vielen Dank im Voraus.
Dokument erstellt 30/01/2003, zuletzt geändert 26/10/2018
Quelle des gedruckten Dokuments:https://www.gaudry.be/de/php-rf-mysql-affected-rows.html
Die Infobro ist eine persönliche Seite, deren Inhalt in meiner alleinigen Verantwortung liegt. Der Text ist unter der CreativeCommons-Lizenz (BY-NC-SA) verfügbar. Weitere Informationen auf die Nutzungsbedingungen und dem Autor.
Referenzen
Diese Verweise und Links verweisen auf Dokumente, die während des Schreibens dieser Seite konsultiert wurden, oder die zusätzliche Informationen liefern können, aber die Autoren dieser Quellen können nicht für den Inhalt dieser Seite verantwortlich gemacht werden.
Der Autor Diese Website ist allein dafür verantwortlich, wie die verschiedenen Konzepte und Freiheiten, die mit den Nachschlagewerken gemacht werden, hier dargestellt werden. Denken Sie daran, dass Sie mehrere Quellinformationen austauschen müssen, um das Risiko von Fehlern zu reduzieren.