Documentation Home

5.4.14 mysql_eof()

bool
mysql_eof(MYSQL_RES *result)

描述

此功能已弃用。 mysql_errno()或者 mysql_error()可以代替使用。

mysql_eof()确定是否已读取结果集的最后一行。

如果您从对 的成功调用中获取结果集 mysql_store_result(),则客户端会在一次操作中收到整个结果集。在这种情况下,NULLmysql_fetch_row()always 返回意味着已经到达结果集的末尾并且不需要调用 mysql_eof(). 与 一起使用时 mysql_store_result()mysql_eof()始终返回 true。

另一方面,如果您使用 发起一个结果集检索,则在您重复mysql_use_result()调用时,该集合的行从服务器逐条获取 。mysql_fetch_row()因为这个过程中可能会出现连接错误,NULLfrom的返回值 mysql_fetch_row()并不一定代表正常到达了结果集的末尾。在这种情况下,您可以使用它 mysql_eof()来确定发生了什么。mysql_eof()如果到达结果集的末尾,则返回非零值;如果发生错误,则返回零。

从历史上看,mysql_eof() 早于标准的 MySQL 错误函数 mysql_errno()mysql_error(). 因为这些错误函数提供相同的信息,所以优先使用它们而不是mysql_eof(),后者已被弃用。(事实上​​,它们提供了更多信息,因为mysql_eof()仅返回一个布尔值,而错误函数会在错误发生时指示错误的原因。)

返回值

零成功。如果已达到结果集的末尾,则非零。

错误

没有任何。

例子

以下示例显示了您可以如何使用 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));
}

但是,您可以使用标准的 MySQL 错误函数实现相同的效果:

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));
}