(PHP 5, PHP 7, PHP 8)
mysqli_stmt::$affected_rows -- mysqli_stmt_affected_rows — Liefert die gesamte Anzahl der Datensätze, die bei der letzten ausgeführten Anweisung geändert, gelöscht, eingefügt oder abgeglichen wurden
Objektorientierter Stil
Prozeduraler Stil
Gibt die Anzahl der Datensätze zurück, die von einer INSERT
-, UPDATE
- oder DELETE
-Abfrage betroffen waren. Funktioniert wie mysqli_stmt_num_rows() bei SELECT
-Anweisungen.
statement
Nur bei prozeduralem Aufruf: ein von mysqli_stmt_init() zurückgegebenes mysqli_stmt-Objekt.
Ein Integer größer als Null zeigt die Anzahl der betroffenen Datensätze an. Null zeigt an, dass von einer UPDATE
-Anweisung keine Datensätze betroffen waren, dass keine Datensätze 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 oder dass bei einer SELECT
-Abfrage mysqli_stmt_affected_rows() vor mysqli_stmt_store_result() aufgerufen wurde.
Hinweis:
Ist die Anzahl der betroffenen Datensätze größer als der maximal erlaubte Wert eines PHP-Integers, wird die Anzahl der betroffenen Datensätze als Zeichenkette zurückgegeben.
Beispiel #1 mysqli_stmt_affected_rows()-Beispiel
Objektorientierter Stil
<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
$mysqli->query("CREATE TEMPORARY TABLE myCountry LIKE Country");
$query = "INSERT INTO myCountry SELECT * FROM Country WHERE Code LIKE ?";
$stmt = $mysqli->prepare($query);
$code = 'A%';
$stmt->bind_param("s", $code);
$stmt->execute();
printf("eingefügte Datensätze: %d\n", $stmt->affected_rows);
Prozeduraler Stil
<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect("localhost", "my_user", "my_password", "world");
mysqli_query($link, "CREATE TEMPORARY TABLE myCountry LIKE Country");
$query = "INSERT INTO myCountry SELECT * FROM Country WHERE Code LIKE ?";
$stmt = mysqli_prepare($link, $query);
$code = 'A%';
mysqli_stmt_bind_param($stmt, "s", $code);
mysqli_stmt_execute($stmt);
printf("Eingefügte Datensätze: %d\n", mysqli_stmt_affected_rows($stmt));
Die obigen Bespiele erzeugen folgende Ausgabe:
Eingefügte Datensätze: 17