Documentation Home
MySQL 5.6 リファレンスマニュアル
Download this Manual
PDF (US Ltr) - 27.1Mb
PDF (A4) - 27.1Mb
EPUB - 7.5Mb
HTML Download (TGZ) - 7.2Mb
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
Sign Up Login You must be logged in to post a comment.