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