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.46 mysql_next_result()

int mysql_next_result(MYSQL *mysql)

説明

この関数は、単一のステートメント文字列として指定された複数のステートメントを実行する場合、または複数の結果セットを返すことがある CALL ステートメントを使用して、ストアドプロシージャーを実行する場合に使用します。

mysql_next_result() は次のステートメント結果を読み取り、それ以上の結果が存在するかどうかを示すステータスを返します。mysql_next_result() がエラーを返した場合、それ以上の結果はありません。

mysql_next_result() の各呼び出しの前に、現在のステートメントが結果セットを返した (結果のステータスだけでなく) ステートメントである場合、そのステートメントに対して mysql_free_result() を呼び出す必要があります。

mysql_next_result() を呼び出したあとの接続の状態は、次のステートメントに対し、mysql_real_query() または mysql_query() を呼び出した場合のようになります。このことは、mysql_store_result()mysql_warning_count()mysql_affected_rows() などを呼び出すことができることを意味します。

プログラムで CALL ステートメントを使用して、ストアドプロシージャーを実行する場合、CLIENT_MULTI_RESULTS フラグが有効になっている必要があります。これは、各 CALL によって、プロシージャー内で実行されるステートメントによって返される可能性のある結果セットに加えて、呼び出しステータスを示すための結果が返されるためです。CALL は複数の結果を返すことができるため、mysql_next_result() を呼び出すループを使用して、それらを処理し、それ以上の結果があるかどうかを判断します。

CLIENT_MULTI_RESULTS は、mysql_real_connect() を呼び出すときに、CLIENT_MULTI_RESULTS フラグ自体を渡すことによって明示的に、または CLIENT_MULTI_STATEMENTS を渡すことによって暗黙的に有効にする (これによって CLIENT_MULTI_RESULTS も有効になります) ことができます。MySQL 5.6 では、CLIENT_MULTI_RESULTS はデフォルトで有効にされています。

mysql_more_results() を呼び出して、それ以上の結果があるかどうかをテストすることもできます。ただし、この関数は接続の状態を変更しないため、それが true を返した場合は、さらに mysql_next_result() を呼び出して、次の結果に進む必要があります。

mysql_next_result() の使用方法を示す例については、セクション23.8.17「複数ステートメント実行の C API サポート」を参照してください。

戻り値
戻り値 説明
0 成功し、それ以上の結果が存在します
-1 成功し、それ以上の結果が存在しません
0 より大きい エラーが発生しました
エラー
  • CR_COMMANDS_OUT_OF_SYNC

    コマンドが正しくない順番で実行されました。たとえば、前の結果セットに対して mysql_use_result() を呼び出していなかった場合。

  • 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.