(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
falsegeprüft wird.
statementNur 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.