mysqli::store_result

mysqli_store_result

(PHP 5, PHP 7, PHP 8)

mysqli::store_result -- mysqli_store_resultÜberträgt die Ergebnismenge der letzten Abfrage

Beschreibung

Objektorientierter Stil

publicmysqli::store_result(int$mode = 0): mysqli_result|false

Prozeduraler Stil

mysqli_store_result(mysqli$mysql, int$mode = 0): mysqli_result|false

Überträgt die Ergebnismenge der letzten Abfrage über die durch mysql angegebene Datenbankverbindung, um sie mit der Funktion mysqli_data_seek() zu verwenden.

Parameter-Liste

mysql

Nur bei prozeduralem Aufruf: ein von mysqli_connect() oder mysqli_init() zurückgegebenes mysqli-Objekt.

mode

Die Option, die gesetzt werden soll. Ab PHP 8.1 hat dieser Parameter keine Auswirkung mehr. Es kann einer der folgenden Werte sein:

Gültige Optionen
NameBeschreibung
MYSQLI_STORE_RESULT_COPY_DATA Kopiert die Ergebnisse aus dem internen mysqlnd-Puffer in die abgerufenen PHP-Variablen. Um zu vermeiden, dass im Speicher gehaltene Ergebnisse kopiert und dupliziert werden, verwendet mysqlnd standardmäßig Referenzen. In bestimmten Fällen, z. B. bei Ergebnismengen mit vielen kleinen Zeilen, kann das Kopieren den Gesamtspeicherverbrauch verringern, weil die PHP-Variablen, die Ergebnisse enthalten, früher freigegeben werden können (nur mit mysqlnd verfügbar).

Rückgabewerte

Gibt ein gepuffertes Ergebnisobjekt zurück oder false, wenn ein Fehler aufgetreten ist.

Hinweis:

Wenn die Abfrage keine Ergebnismenge zurückgegeben hat (z. B. wenn die Abfrage eine INSERT-Anweisung war), gibt die Funktion false zurück. Diese Funktion gibt auch false zurück, wenn die Ergebnismenge nicht gelesen werden konnte. Ob ein Fehler aufgetreten ist, kann überprüft werden, indem kontrolliert wird, ob mysqli_error() eine nicht-leere Zeichenkette zurückgibt, ob mysqli_errno() einen Wert ungleich Null zurückgibt oder ob mysqli_field_count() einen Wert ungleich Null zurückgibt. Ein weiterer möglicher Grund dafür, dass diese Funktion nach einem erfolgreichen Aufruf von mysqli_query()false zurückgibt, kann eine zu große Ergebnismenge sein (der dafür benötigte Speicher kann nicht zugewiesen werden). Wenn mysqli_field_count() einen Wert ungleich Null zurückgibt, sollte die Anweisung eine nicht-leere Ergebnismenge erzeugt haben.

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

Siehe mysqli_multi_query().

Anmerkungen

Hinweis:

Obwohl es immer sinnvoll ist, den vom Ergebnis einer Abfrage belegten Speicher mit der Funktion mysqli_free_result() freizugeben, ist dies besonders wichtig, wenn große Ergebnismengen mit der Funktion mysqli_store_result() übertragen werden.

Siehe auch

To Top