my_bool mysql_eof(MYSQL_RES *result)
Description
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.)
Return Values
Zero if no error occurred. Nonzero if the end of the result set has been reached.
Errors
None.
Example
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)); }