PDF (US Ltr) - 1.4Mb
PDF (A4) - 1.4Mb
bool
mysql_eof(MYSQL_RES *result)
此函数已被弃用。建议使用 mysql_errno()
或 mysql_error()
代替。
mysql_eof()
用于确定是否已读取结果集的最后一行。
如果从对 mysql_store_result()
的成功调用中获取结果集,则客户端会在一次操作中接收整个结果集。在这种情况下,mysql_fetch_row()
返回 NULL
始终表示已到达结果集的末尾,无需调用 mysql_eof()
。与 mysql_store_result()
一起使用时,mysql_eof()
始终返回 true。
另一方面,如果使用 mysql_use_result()
启动结果集检索,则在重复调用 mysql_fetch_row()
时,会从服务器逐行获取结果集的行。因为在此过程中连接可能会出错,所以 mysql_fetch_row()
返回 NULL
不一定意味着已正常到达结果集的末尾。在这种情况下,可以使用 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));
}