(PHP 5, PHP 7)
mysqli::$affected_rows -- mysqli_affected_rows — Ermittelt die Anzahl der betroffenen Zeilen in einem vorherigen MySQL Vorgang
Objektorientierter Stil
Prozeduraler Stil
Gibt die Anzahl der von der letzten INSERT
-,
UPDATE
-,REPLACE
- oder DELETE
-Abfrage
betroffenen Zeilen zurück.
Für SELECT-Anweisungen entspricht mysqli_affected_rows() mysqli_num_rows()
link
Nur bei prozeduralem Aufruf: Ein von mysqli_connect() oder mysqli_init() zurückgegebenes Verbindungsobjekt.
Eine Ganzzahl größer als Null zeigt die Anzahl der betroffenen oder abgerufenen
Zeilen an.
Null gibt an, dass keine Datensätze für eine UPDATE-Anweisung aktualisiert wurden,
keine Zeilen mit der WHERE
-Klausel übereinstimmen oder,dass die Datenbankabfrage noch
nicht aufgeführt worden ist. -1 gibt an, dass die Datenbankabfrage einen Fehler zurückgegeben hat.
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 String zurückgegeben.
Beispiel #1 $mysqli->affected_rows example
Objektorientierter Stil
<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
/* Verbindung überprüfen */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
/* Datensätze einfügen */
$mysqli->query("CREATE TABLE Language SELECT * from CountryLanguage");
printf("Affected rows (INSERT): %d\n", $mysqli->affected_rows);
$mysqli->query("ALTER TABLE Language ADD Status int default 0");
/* Datensätze updaten */
$mysqli->query("UPDATE Language SET Status=1 WHERE Percentage > 50");
printf("Affected rows (UPDATE): %d\n", $mysqli->affected_rows);
/* Datensätze löschen */
$mysqli->query("DELETE FROM Language WHERE Percentage < 50");
printf("Affected rows (DELETE): %d\n", $mysqli->affected_rows);
/* Alle Datensätze auswählen */
$result = $mysqli->query("SELECT CountryCode FROM Language");
printf("Affected rows (SELECT): %d\n", $mysqli->affected_rows);
$result->close();
/* Tabelle Language löschen */
$mysqli->query("DROP TABLE Language");
/* Verbindung schließen */
$mysqli->close();
?>
Prozeduraler Stil
<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");
if (!$link) {
printf("Can't connect to localhost. Error: %s\n", mysqli_connect_error());
exit();
}
/* Datensätze einfügen */
mysqli_query($link, "CREATE TABLE Language SELECT * from CountryLanguage");
printf("Affected rows (INSERT): %d\n", mysqli_affected_rows($link));
mysqli_query($link, "ALTER TABLE Language ADD Status int default 0");
/* Datensätze aktualisieren */
mysqli_query($link, "UPDATE Language SET Status=1 WHERE Percentage > 50");
printf("Affected rows (UPDATE): %d\n", mysqli_affected_rows($link));
/* Datensätze löschen */
mysqli_query($link, "DELETE FROM Language WHERE Percentage < 50");
printf("Affected rows (DELETE): %d\n", mysqli_affected_rows($link));
/* Alle Datensätze auswählen */
$result = mysqli_query($link, "SELECT CountryCode FROM Language");
printf("Affected rows (SELECT): %d\n", mysqli_affected_rows($link));
mysqli_free_result($result);
/* Tabelle Language löschen */
mysqli_query($link, "DROP TABLE Language");
/* close connection */
mysqli_close($link);
?>
Die obigen Bespiele erzeugen folgende Ausgabe:
Affected rows (INSERT): 984 Affected rows (UPDATE): 168 Affected rows (DELETE): 815 Affected rows (SELECT): 169