MySQL :: MySQL 8.4 C API Developer Guide :: 5.4.14 mysql_eof() (original) (raw)
5.4.14 mysql_eof()
bool
mysql_eof(MYSQL_RES *result)
Description
This function is deprecated.mysql_errno() ormysql_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 tomysql_store_result(), the client receives the entire set in one operation. In this case, a NULL
return frommysql_fetch_row() always means the end of the result set has been reached and it is unnecessary to callmysql_eof(). When used withmysql_store_result(),mysql_eof() always returns true.
On the other hand, if you usemysql_use_result() to initiate a result set retrieval, the rows of the set are obtained from the server one by one as you callmysql_fetch_row() repeatedly. Because an error may occur on the connection during this process, a NULL
return value frommysql_fetch_row() does not necessarily mean the end of the result set was reached normally. In this case, you can usemysql_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 functionsmysql_errno() andmysql_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 for success. Nonzero if the end of the result set has been reached.
Example
The following example shows how you might usemysql_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));
}