mysqli::use_result
mysqli_use_result
(PHP 5, PHP 7, PHP 8)
mysqli::use_result -- mysqli_use_result — Initiiert den Abruf einer Ergebnismenge
Beschreibung
Objektorientierter Stil
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.
Parameter-Liste
Diese Funktion besitzt keine Parameter.
Rückgabewerte
Gibt ein ungepuffertes Ergebnisobjekt zurück oder false, wenn ein Fehler
aufgetreten ist.
Beispiele
Beispiel #1 mysqli::use_result()-Beispiel
<?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();
?>
<?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