MySQL 8.4 C API Developer Guide
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));
}