PDF (美式信紙) - 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));
}