mysqli_stmt::$affected_rows
mysqli_stmt_affected_rows
(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
Beschreibung
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.
Parameter-Liste
-
statement
-
Nur bei prozeduralem Aufruf: ein von mysqli_stmt_init() zurückgegebenes mysqli_stmt-Objekt.
Rückgabewerte
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.
Beispiele
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");
/* temporäre Tabelle erzeugen */
$mysqli->query("CREATE TEMPORARY TABLE myCountry LIKE Country");
$query = "INSERT INTO myCountry SELECT * FROM Country WHERE Code LIKE ?";
/* Anweisung vorbereiten */
$stmt = $mysqli->prepare($query);
/* Variable an Platzhalter binden */
$code = 'A%';
$stmt->bind_param("s", $code);
/* Anweisung ausführen */
$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");
/* 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 */
$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 Datensätze: %d\n", mysqli_stmt_affected_rows($stmt));
Die obigen Bespiele erzeugen folgende Ausgabe:
Eingefügte Datensätze: 17
Siehe auch
- mysqli_stmt_num_rows() - Liefert die Anzahl der vom Server abgerufenen Datensätze
- mysqli_stmt_store_result() - Speichert eine Ergebnismenge in einem internen Puffer