Documentation Home
MySQL 5.6 リファレンスマニュアル
Download this Manual
PDF (US Ltr) - 26.8Mb
PDF (A4) - 26.9Mb
HTML Download (TGZ) - 7.1Mb
HTML Download (Zip) - 7.2Mb


23.8.7.70 mysql_store_result()

MYSQL_RES *mysql_store_result(MYSQL *mysql)

説明

mysql_query() または mysql_real_query() を呼び出したあとに、結果セットを正常に生成するすべてのステートメント (SELECTSHOWDESCRIBEEXPLAINCHECK TABLE など) に対して、mysql_store_result() または mysql_use_result() を呼び出す必要があります。結果セットの処理を終了したら、mysql_free_result() も呼び出す必要があります。

ほかのステートメントに対して、mysql_store_result() または mysql_use_result() を呼び出す必要はありませんが、あらゆるケースで mysql_store_result() を呼び出しても、それは何の害も及ぼしたり、顕著なパフォーマンスの低下を招いたりすることはありません。mysql_store_result() がゼロ以外の値を返すかどうかをチェックすることによって、ステートメントに結果セットがあるかどうかを検出できます (これについてはあとで詳しく説明しています)。

複数ステートメントのサポートを有効にする場合、mysql_next_result() を呼び出すループを使用して、それ以上の結果があるかどうかを判断することによって、mysql_query() または mysql_real_query() への呼び出しからの結果を取得してください。例については、セクション23.8.17「複数ステートメント実行の C API サポート」を参照してください。

ステートメントが結果セットを返すかどうかを知る必要がある場合は、mysql_field_count() を使ってこれをチェックできます。セクション23.8.7.22「mysql_field_count()」を参照してください。

mysql_store_result() はクライアントへのクエリーの結果全体を読み取り、MYSQL_RES 構造を割り当て、この構造に結果を配置します。

ステートメントが結果セットを返さなかった場合 (たとえば、それが INSERT ステートメントであった場合)、mysql_store_result() は NULL ポインタを返します。

mysql_store_result() は結果セットの読み取りに失敗した場合も、NULL ポインタを返します。mysql_error() が空でない文字列を返すか、mysql_errno() がゼロ以外を返すか、または mysql_field_count() がゼロを返すかどうかをチェックすることによって、エラーが発生したかどうかをチェックできます。

返される行がない場合、空の結果セットが返されます。(空の結果セットは戻り値としての NULL ポインタとは異なります。)

mysql_store_result() を呼び出し、NULL ポインタでない結果が返されたあとに、mysql_num_rows() を呼び出して、結果セット内にある行数を調べることができます。

mysql_fetch_row() を呼び出して、結果セットから行をフェッチしたり、mysql_row_seek()mysql_row_tell() を呼び出して、結果セット内の現在の行の位置を取得または設定したりできます。

セクション23.8.15.1「mysql_query() が成功を返したあとに mysql_store_result() が NULL を返すことがあるのはなぜか」を参照してください。

戻り値

結果を含む MYSQL_RES 結果構造。エラーが発生した場合は NULL (0)。

エラー

mysql_store_result() は成功した場合に、mysql_error()mysql_errno() をリセットします。

  • CR_COMMANDS_OUT_OF_SYNC

    コマンドが正しくない順番で実行されました。

  • CR_OUT_OF_MEMORY

    メモリー不足。

  • CR_SERVER_GONE_ERROR

    MySQL サーバーが存在しなくなりました。

  • CR_SERVER_LOST

    サーバーへの接続がクエリー中に失われました。

  • CR_UNKNOWN_ERROR

    不明なエラーが発生しました。


User Comments
User comments in this section are, as the name implies, provided by MySQL users. The MySQL documentation team is not responsible for, nor do they endorse, any of the information provided here.
Sign Up Login You must be logged in to post a comment.