MySQL 5.6 C API Developer Guide
my_bool mysql_eof(MYSQL_RES *result)
This function is deprecated.
mysql_errno()
or
mysql_error()
may be used
instead.
mysql_eof()
determines whether
the last row of a result set has been read.
If you acquire a result set from a successful call to
mysql_store_result()
, the
client receives the entire set in one operation. In this case,
a NULL
return from
mysql_fetch_row()
always means
the end of the result set has been reached and it is
unnecessary to call
mysql_eof()
. When used with
mysql_store_result()
,
mysql_eof()
always returns
true.
On the other hand, if you use
mysql_use_result()
to initiate
a result set retrieval, the rows of the set are obtained from
the server one by one as you call
mysql_fetch_row()
repeatedly.
Because an error may occur on the connection during this
process, a NULL
return value from
mysql_fetch_row()
does not
necessarily mean the end of the result set was reached
normally. In this case, you can use
mysql_eof()
to determine what
happened. mysql_eof()
returns
a nonzero value if the end of the result set was reached and
zero if an error occurred.
Historically, mysql_eof()
predates the standard MySQL error functions
mysql_errno()
and
mysql_error()
. Because those
error functions provide the same information, their use is
preferred over mysql_eof()
,
which is deprecated. (In fact, they provide more information,
because mysql_eof()
returns
only a boolean value whereas the error functions indicate a
reason for the error when one occurs.)
The following example shows how you might use
mysql_eof()
:
mysql_query(&mysql,"SELECT * FROM some_table"); result = mysql_use_result(&mysql); while((row = mysql_fetch_row(result))) { // do something with data } if(!mysql_eof(result)) // mysql_fetch_row() failed due to an error { fprintf(stderr, "Error: %s\n", mysql_error(&mysql)); }
However, you can achieve the same effect with the standard MySQL error functions:
mysql_query(&mysql,"SELECT * FROM some_table"); result = mysql_use_result(&mysql); while((row = mysql_fetch_row(result))) { // do something with data } if(mysql_errno(&mysql)) // mysql_fetch_row() failed due to an error { fprintf(stderr, "Error: %s\n", mysql_error(&mysql)); }