(PHP 5, PHP 7, PHP 8)
mysqli_stmt::store_result -- mysqli_stmt_store_result — Speichert eine Ergebnismenge in einem internen Puffer
Objektorientierter Stil
Prozeduraler Stil
Diese Funktion sollte nur aufgerufen werden, wenn die Abfrage eine gültige
Ergebnismenge zurückgibt (z. B. SELECT, SHOW, DESCRIBE,
EXPLAIN
) und die komplette Ergebnismenge gepuffert werden muss.
Jeder nachfolgende Aufruf von mysqli_stmt_fetch()
liefert dann Daten aus dem Puffer.
Hinweis:
Es ist unnötig, mysqli_stmt_store_result() für andere Abfragen aufzurufen. Aber in keinem Fall schadet es oder benötigt merklich Laufzeit. Ob eine Abfrage eine Ergebnismenge zurückgibt, kann festgestellt werden, indem das Ergebnis von mysqli_stmt_result_metadata() auf
false
geprüft wird.
statement
Nur bei prozeduralem Aufruf: ein von mysqli_stmt_init() zurückgegebenes mysqli_stmt-Objekt.
If mysqli error reporting is enabled (MYSQLI_REPORT_ERROR
) and the requested operation fails,
a warning is generated. If, in addition, the mode is set to MYSQLI_REPORT_STRICT
,
a mysqli_sql_exception is thrown instead.
Beispiel #1 Objektorientierter Stil
<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
$query = "SELECT Name, CountryCode FROM City ORDER BY Name LIMIT 20";
$stmt = $mysqli->prepare($query);
$stmt->execute();
/* Das Ergebnis im internen Puffer speichern */
$stmt->store_result();
printf("Die Anzahl der Datensätze: %d.\n", $stmt->num_rows);
Beispiel #2 Prozeduraler Stil
<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect("localhost", "my_user", "my_password", "world");
$query = "SELECT Name, CountryCode FROM City ORDER BY Name LIMIT 20";
$stmt = mysqli_prepare($link, $query);
mysqli_stmt_execute($stmt);
/* Das Ergebnis im internen Puffer speichern */
mysqli_stmt_store_result($stmt);
printf("Die Anzahl der Datensätze: %d.\n", mysqli_stmt_num_rows($stmt));
Die obigen Bespiele erzeugen folgende Ausgabe:
Die Anzahl der Datensätze: 20.