(PHP 5, PHP 7, PHP 8)
mysqli::use_result -- mysqli_use_result — Initiiert den Abruf einer Ergebnismenge
Objektorientierter Stil
Prozeduraler Stil
Wird verwendet, um die Ergebnismenge der letzten mit der Funktion mysqli_real_query() über die Datenbankverbindung ausgeführten Abfrage zur Verarbeitung vorzubereiten.
Bevor die Ergebnisse einer Abfrage abgerufen werden können, muss entweder diese Funktion oder die Funktion mysqli_store_result() aufgerufen werden. Wenn keine der beiden Funktionen aufgerufen wird, schlägt die nächste Abfrage über die Datenbankverbindung fehl.
Hinweis:
Die Funktion mysqli_use_result() überträgt nicht die gesamte Ergebnismenge von der Datenbank und kann daher nicht mit Funktionen wie mysqli_data_seek() verwendet werden, um zu einer bestimmten Zeile innerhalb der Menge zu gelangen. Um diese Funktionalität zu nutzen, muss die Ergebnismenge mit mysqli_store_result() gespeichert werden. mysqli_use_result() sollte nicht verwendet werden, wenn auf der Client-Seite eine umfangreiche Verarbeitung durchgeführt wird, da dies den Server blockiert und andere Threads daran hindert, die Tabellen zu aktualisieren, aus denen die Daten geholt werden.
Diese Funktion besitzt keine Parameter.
Gibt ein ungepuffertes Ergebnisobjekt zurück oder false
, wenn ein Fehler
aufgetreten ist.
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 mysqli::use_result()-Beispiel
Objektorientierter Stil
<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
/* Verbindung überprüfen */
if (mysqli_connect_errno()) {
printf("Verbindung fehlgeschlagen: %s\n", mysqli_connect_error());
exit();
}
$query = "SELECT CURRENT_USER();";
$query .= "SELECT Name FROM City ORDER BY ID LIMIT 20, 5";
/* Mehrfachabfrage ausführen */
if ($mysqli->multi_query($query)) {
do {
/* erste Ergebnismenge speichern */
if ($result = $mysqli->use_result()) {
while ($row = $result->fetch_row()) {
printf("%s\n", $row[0]);
}
$result->close();
}
/* Trennlinie ausgeben */
if ($mysqli->more_results()) {
printf("-----------------\n");
}
} while ($mysqli->next_result());
}
/* Verbindung schließen */
$mysqli->close();
?>
Prozeduraler Stil
<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");
/* Verbindung überprüfen */
if (mysqli_connect_errno()) {
printf("Verbindung fehlgeschlagen: %s\n", mysqli_connect_error());
exit();
}
$query = "SELECT CURRENT_USER();";
$query .= "SELECT Name FROM City ORDER BY ID LIMIT 20, 5";
/* Mehrfachabfrage ausführen */
if (mysqli_multi_query($link, $query)) {
do {
/* erste Ergebnismenge speichern */
if ($result = mysqli_use_result($link)) {
while ($row = mysqli_fetch_row($result)) {
printf("%s\n", $row[0]);
}
mysqli_free_result($result);
}
/* Trennlinie ausgeben */
if (mysqli_more_results($link)) {
printf("-----------------\n");
}
} while (mysqli_next_result($link));
}
/* Verbindung schließen */
mysqli_close($link);
?>
Die obigen Bespiele erzeugen folgende Ausgabe:
my_user@localhost ----------------- Amersfoort Maastricht Dordrecht Leiden Haarlemmermeer