mysqli_stmt::store_result

mysqli_stmt_store_result

(PHP 5, PHP 7, PHP 8)

mysqli_stmt::store_result -- mysqli_stmt_store_resultSpeichert eine Ergebnismenge in einem internen Puffer

Beschreibung

Objektorientierter Stil

public mysqli_stmt::store_result(): bool

Prozeduraler Stil

mysqli_stmt_store_result(mysqli_stmt $statement): bool

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.

Parameter-Liste

statement

Nur bei prozeduralem Aufruf: ein von mysqli_stmt_init() zurückgegebenes mysqli_stmt-Objekt.

Rückgabewerte

Gibt bei Erfolg true zurück. Bei einem Fehler wird false zurückgegeben.

Fehler/Exceptions

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.

Beispiele

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.

Siehe auch