mysqli_stmt::$affected_rows

mysqli_stmt_affected_rows

(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

Beschreibung

Objektorientierter Stil

Prozeduraler Stil

mysqli_stmt_affected_rows ( mysqli_stmt $stmt ) : int

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.

Parameter-Liste

stmt

Nur bei prozeduralem Aufruf: ein von mysqli_stmt_init() zurückgegebenes Statementobjekt.

Rückgabewerte

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.

Beispiele

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

Siehe auch