MYSQL_RES *mysql_store_result(MYSQL *mysql)
Beschreibung
Sie müssen mysql_store_result()
oder
mysql_use_result()
für jede Anfrage
aufrufen, die erfolgreich Daten abruft
(SELECT
, SHOW
,
DESCRIBE
, EXPLAIN
,
CHECK TABLE
, und so weiter).
Für andere Anfragen brauchen Sie
mysql_store_result()
oder
mysql_use_result()
nicht zu verwenden, aber
es schadet auch nichts und bringt keine spürbaren
Leistungseinbußen, wenn Sie in jedem Fall
mysql_store_result()
aufrufen. Sie können
erkennen, ob die Anfrage eine Ergebnismenge hatte oder nicht,
indem Sie prüfen, ob mysql_store_result()
0 zurückgibt (darüber später mehr).
Wenn Sie wissen möchten, ob die Anfrage eine Ergebnismenge
zurückgeben müsste, prüfen Sie dies mit
mysql_field_count()
. Siehe
Abschnitt 24.2.3.22, „mysql_field_count()
“.
mysql_store_result()
liest das gesamte
Anfrageergebnis auf den Client ein, weist eine
MYSQL_RES
-Struktur zu und setzt das
Resultat in diese Struktur ein.
mysql_store_result()
liefert einen
Nullzeiger, wenn die Anfrage keine Ergebnismenge zurückgab
(also beispielsweise eine INSERT
-Anweisung
war).
mysql_store_result()
liefert auch einen
Nullzeiger, wenn die Ergebnismenge nicht gelesen werden
konnte. Ein Fehler ist aufgetreten, wenn
mysql_error()
einen nichtleeren String oder
einen von null verschiedenen Wert liefert oder wenn
mysql_field_count()
null zurückgibt.
Eine leere Ergebnismenge bedeutet, dass keine Zeilen zurückgegeben wurden. (Eine leere Ergebnismenge ist etwas anderes als ein Nullzeiger als Rückgabewert.)
Wenn Sie mysql_store_result()
aufgerufen
und ein Ergebnis erhalten haben, das kein Nullzeiger ist,
können Sie mit mysql_num_rows()
ermitteln,
wie viele Zeilen die Ergebnismenge hat.
Sie können mit mysql_fetch_row()
Zeilen
aus der Ergebnismenge abrufen oder mit
mysql_row_seek()
und
mysql_row_tell()
die aktuelle
Zeilenposition in der Ergebnismenge ermitteln oder einstellen.
Wenn Sie mit der Ergebnismenge fertig sind, rufen Sie
mysql_free_result()
auf.
Rückgabewerte
Eine MYSQL_RES
-Ergebnisstruktur mit den
Resultaten. NULL
, wenn ein Fehler auftrat.
Fehler
Die Funktion mysql_store_result()
setzt
mysql_error()
und
mysql_errno()
zurück, wenn sie erfolgreich
gelaufen ist.
CR_COMMANDS_OUT_OF_SYNC
Befehle wurden in der falschen Reihenfolge ausgeführt.
CR_OUT_OF_MEMORY
Speicherüberlauf.
CR_SERVER_GONE_ERROR
Der MySQL Server ist nicht mehr verfügbar.
CR_SERVER_LOST
Die Serververbindung brach während der Anfrage ab.
CR_UNKNOWN_ERROR
Ein unbekannter Fehler ist aufgetreten.
Dies ist eine Übersetzung des MySQL-Referenzhandbuchs, das sich auf dev.mysql.com befindet. Das ursprüngliche Referenzhandbuch ist auf Englisch, und diese Übersetzung ist nicht notwendigerweise so aktuell wie die englische Ausgabe. Das vorliegende deutschsprachige Handbuch behandelt MySQL bis zur Version 5.1.