bool
mysql_eof(MYSQL_RES *result)
此功能已弃用。
mysql_errno()
或者
mysql_error()
可以代替使用。
mysql_eof()
确定是否已读取结果集的最后一行。
如果您从对 的成功调用中获取结果集
mysql_store_result()
,则客户端会在一次操作中收到整个结果集。在这种情况下,NULL
从
mysql_fetch_row()
always 返回意味着已经到达结果集的末尾并且不需要调用
mysql_eof()
. 与 一起使用时
mysql_store_result()
,
mysql_eof()
始终返回 true。
另一方面,如果您使用
发起一个结果集检索,则在您重复mysql_use_result()
调用时,该集合的行从服务器逐条获取
。mysql_fetch_row()
因为这个过程中可能会出现连接错误,NULL
from的返回值
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));
}