my_bool mysql_eof(MYSQL_RES *result)
説明
この機能はけなされます。代わりにmysql_errno()またはmysql_error()を使うことができます。
mysql_eof()は結果セットの最後の列が読み込まれたか否かを査定します。
mysql_store_result()に対して成功した呼び出しから結果セットを取得する場合、クライアントは1回のオペレーションで全セットを受け取ります。この場合、NULLのmysql_fetch_row()からの戻りは、結果セットの終わりが届いているので、mysql_eof()を呼び出す必要はないことを常に意味します。mysql_store_result()と一緒に使うとき、mysql_eof()は常に真を戻します。
一方、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));
}
