my_bool mysql_eof(MYSQL_RES *result)
Beschreibung
Diese Funktion ist veraltet. mysql_errno()
oder mysql_error()
können stattdessen
verwendet werden.
mysql_eof()
stellt fest, ob die letzte
Zeile einer Ergebnismenge gelesen worden ist.
Wenn Sie eine Ergebnismenge mit einem erfolgreichen Aufruf von
mysql_store_result()
abrufen, empfängt der
Client die gesamte Menge mit einer einzigen Operation. Der
Rückgabewert NULL
von
mysql_fetch_row()
bedeutet in diesem Fall
immer, dass das Ende der Ergebnismenge erreicht wurde, sodass
sich mysql_eof()
erübrigt. In Verbindung
mit mysql_store_result()
liefert
mysql_eof()
immer TRUE.
Wenn Sie dagegen den Abruf einer Ergebnismenge mit
mysql_use_result()
initiieren, werden die
Zeilen eine nach der anderen mit wiederholten
mysql_fetch_row()
-Aufrufen vom Server
geholt. Da bei diesem Prozess ein Verbindungsfehler auftreten
kann, bedeutet eine NULL
-Rückgabe von
mysql_fetch_row()
nicht unbedingt, dass
ganz normal das Ende der Ergebnismenge erreicht wurde. In
diesem Fall können Sie mit mysql_eof()
feststellen, was tatsächlich geschah.
mysql_eof()
liefert einen von null
verschiedenen Wert, wenn das Ende der Ergebnismenge erreicht
wurde, und null, wenn ein Fehler auftrat.
Eigentlich ist mysql_eof()
älter als die
MySQL-Standardfehlerfunktionen
mysql_errno()
und
mysql_error()
. Da diese Fehlerfunktionen
dieselben Informationen liefern, bevorzugen wir sie gegenüber
der veralteten Funktion mysql_eof()
.
(Eigentlich geben sie sogar mehr Informationen, da
mysql_eof()
nur einen booleschen Wert
zurückgibt, während die Fehlerfunktionen auch den Grund für
einen Fehler verraten.)
Rückgabewerte
Null, wenn kein Fehler auftrat. Ein von null verschiedener Wert, wenn das Ende der Ergebnismenge erreicht wurde.
Fehler
Keine.
Beispiel
Das folgende Beispiel zeigt, wie sich
mysql_eof()
einsetzen lässt:
mysql_query(&mysql,"SELECT * FROM some_table"); result = mysql_use_result(&mysql); while((row = mysql_fetch_row(result))) { // Tu etwas mit den Daten } if(!mysql_eof(result)) // mysql_fetch_row() scheiterte wegen eines Fehlers { fprintf(stderr, "Error: %s\n", mysql_error(&mysql)); }
Sie können jedoch denselben Effekt auch mit den Standardfehlerfunktionen von MySQL erzielen:
mysql_query(&mysql,"SELECT * FROM some_table"); result = mysql_use_result(&mysql); while((row = mysql_fetch_row(result))) { // Tu etwas mit den Daten } if(mysql_errno(&mysql)) // mysql_fetch_row() scheiterte wegen eines Fehlers { fprintf(stderr, "Error: %s\n", mysql_error(&mysql)); }
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.