(PHP 5, PHP 7)
mysqli_stmt::$affected_rows -- mysqli_stmt_affected_rows — gibt die gesamte Anzahl der Zeilen zurück, die bei der letzten ausgeführten Anweisung geändert, gelöscht oder eingefügt worden sind
Objektorientierter Stil
Prozeduraler Stil
Gibt die Anzahl der Zeilen zurück, die bei einer INSERT
,
UPDATE
oder DELETE
Abfrage beeinflusst worden sind.
Die Funktion arbeitet nur mit Abfragen, die eine Tabelle aktualisieren. Um die Anzahl der Zeilen einer SELECT-Abfrage zu bekommen, ist stattdessen mysqli_stmt_num_rows() zu verwenden.
stmt
Nur bei prozeduralem Aufruf: ein von mysqli_stmt_init() zurückgegebenes Statementobjekt.
Ein Integer-Wert größer als Null zeigt die Anzahl der beeinflussten Zeilen an. Null zeigt an, dass bei einer UPDATE/DELETE-Anweisung keine Datensätze beeinflusst worden sind, dass keine Zeilen die WHERE-Bedingung der Anweisung erfüllt haben, oder dass keine Anweisung ausgeführt wurde. -1 zeigt an, dass die Abfrage einen Fehler zurückgegeben hat. NULL zeigt an, dass die Abfrage mit einem ungültigen Argument aufgerufen wurde.
Hinweis:
Ist die Anzahl der beeinflussten Zeilen größer als der maximal erlaubte Wert eines PHP-Integers, wird die Anzahl der beeinflussten Zeilen als String-Wert zurück gegeben.
Beispiel #1 Objektorientierter Stil
<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
/* Verbindung prüfen */
if (mysqli_connect_errno()) {
printf("Verbindung fehlgeschlagen: %s\n", mysqli_connect_error());
exit();
}
/* temporäre Tabelle erzeugen */
$mysqli->query("CREATE TEMPORARY TABLE myCountry LIKE Country");
$query = "INSERT INTO myCountry SELECT * FROM Country WHERE Code LIKE ?";
/* Anweisung vorbereiten */
if ($stmt = $mysqli->prepare($query)) {
/* Variable an Platzhalter binden */
$code = 'A%';
$stmt->bind_param("s", $code);
/* Anweisung ausführen */
$stmt->execute();
printf("eingefügte Zeilen: %d\n", $stmt->affected_rows);
/* Anweisung schließen */
$stmt->close();
}
/* Verbindung schließen */
$mysqli->close();
?>
Beispiel #2 Prozeduraler Stil
<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");
/* Verbindung prüfen */
if (mysqli_connect_errno()) {
printf("Verbindung fehlgeschlagen: %s\n", mysqli_connect_error());
exit();
}
/* temporäre Tabelle erzeugen */
mysqli_query($link, "CREATE TEMPORARY TABLE myCountry LIKE Country");
$query = "INSERT INTO myCountry SELECT * FROM Country WHERE Code LIKE ?";
/* Anweisung vorbereiten */
if ($stmt = mysqli_prepare($link, $query)) {
/* Variable an Platzhalter binden */
$code = 'A%';
mysqli_stmt_bind_param($stmt, "s", $code);
/* Anweisung ausführen */
mysqli_stmt_execute($stmt);
printf("eingefügte Zeilen: %d\n", mysqli_stmt_affected_rows($stmt));
/* Anweisung schließen */
mysqli_stmt_close($stmt);
}
/* Verbindung schließen */
mysqli_close($link);
?>
Die obigen Bespiele erzeugen folgende Ausgabe:
eingefügte Zeilen: 17