mysqli::$affected_rows
mysqli_affected_rows
(PHP 5, PHP 7, PHP 8)
mysqli::$affected_rows -- mysqli_affected_rows — Liefert die Anzahl der Datensätze, die vom letzten MySQL-Vorgang betroffen waren
Beschreibung
Objektorientierter Stil
Prozeduraler Stil
Gibt die Anzahl der von der letzten INSERT
-,
UPDATE
-,REPLACE
- oder
DELETE
-Abfrage betroffenen Datensätze zurück. Entspricht
bei SELECT
-Anweisungen
mysqli_num_rows().
Parameter-Liste
-
mysql
-
Nur bei prozeduralem Aufruf: Ein von mysqli_connect() oder mysqli_init() zurückgegebenes mysqli-Objekt.
Rückgabewerte
Eine Ganzzahl größer als Null zeigt die Anzahl der betroffenen oder
abgerufenen Datensätze an. Null gibt an, dass bei einer
UPDATE
-Anweisung keine Datensätze aktualisiert wurden,
keine Datensätze mit der WHERE
-Klausel übereinstimmen
oder dass die Datenbankabfrage noch nicht aufgeführt wurde.
-1
gibt an, dass die Datenbankabfrage einen Fehler
zurückgegeben hat oder dass mysqli_affected_rows() für
eine ungepufferte SELECT
-Abfrage aufgerufen wurde.
Hinweis:
Ist die Anzahl der betroffenen Datensätze größer als der maximale Integer-Wert (
PHP_INT_MAX
), wird die Anzahl der betroffenen Datensätze als Zeichenkette zurückgegeben.
Beispiele
Beispiel #1 $mysqli->affected_rows-Beispiel
Objektorientierter Stil
<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
/* Datensätze einfügen */
$mysqli->query("CREATE TABLE Language SELECT * from CountryLanguage");
printf("Betroffene Datensätze (INSERT): %d\n", $mysqli->affected_rows);
$mysqli->query("ALTER TABLE Language ADD Status int default 0");
/* Datensätze ändern */
$mysqli->query("UPDATE Language SET Status=1 WHERE Percentage > 50");
printf("Betroffene Datensätze (UPDATE): %d\n", $mysqli->affected_rows);
/* Datensätze löschen */
$mysqli->query("DELETE FROM Language WHERE Percentage < 50");
printf("Betroffene Datensätze (DELETE): %d\n", $mysqli->affected_rows);
/* Alle Datensätze auswählen */
$result = $mysqli->query("SELECT CountryCode FROM Language");
printf("Betroffene Datensätze (SELECT): %d\n", $mysqli->affected_rows);
/* Tabelle Language löschen */
$mysqli->query("DROP TABLE Language");
Prozeduraler Stil
<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect("localhost", "my_user", "my_password", "world");
/* Datensätze einfügen */
mysqli_query($link, "CREATE TABLE Language SELECT * from CountryLanguage");
printf("Betroffene Datensätze (INSERT): %d\n", mysqli_affected_rows($link));
mysqli_query($link, "ALTER TABLE Language ADD Status int default 0");
/* Datensätze ändern */
mysqli_query($link, "UPDATE Language SET Status=1 WHERE Percentage > 50");
printf("Betroffene Datensätze (UPDATE): %d\n", mysqli_affected_rows($link));
/* Datensätze löschen */
mysqli_query($link, "DELETE FROM Language WHERE Percentage < 50");
printf("Betroffene Datensätze (DELETE): %d\n", mysqli_affected_rows($link));
/* Alle Datensätze auswählen */
$result = mysqli_query($link, "SELECT CountryCode FROM Language");
printf("Betroffene Datensätze (SELECT): %d\n", mysqli_affected_rows($link));
/* Tabelle Language löschen */
mysqli_query($link, "DROP TABLE Language");
Die obigen Bespiele erzeugen folgende Ausgabe:
Betroffene Datensätze (INSERT): 984 Betroffene Datensätze (UPDATE): 168 Betroffene Datensätze (DELETE): 815 Betroffene Datensätze (SELECT): 169
Siehe auch
- mysqli_num_rows() - Gets the number of rows in the result set
- mysqli_info() - Retrieves information about the most recently executed query