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.11.17 mysql_stmt_next_result()

int mysql_stmt_next_result(MYSQL_STMT *mysql)

説明

この関数は、複数の結果セットを返すことができるプリペアド CALL ステートメントを使用して、ストアドプロシージャーを実行する場合に使用します。mysql_stmt_next_result() を呼び出すループを使用して、それ以上の結果があるかどうかを判断します。プロシージャーに OUT または INOUT パラメータがある場合、それらの値はほかの結果セットに続いて、単一の行結果セットとして返されます。値は、プロシージャーパラメータリストに宣言されている順番で表示されます。

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

mysql_stmt_next_result() の各呼び出しの前に、現在の結果で結果セット (結果のステータスだけでなく) が生成された場合、現在の結果に対して mysql_stmt_free_result() を呼び出す必要があります。

mysql_stmt_next_result() を呼び出したあとの接続の状態は、mysql_stmt_execute() を呼び出した場合のようになります。このことは、mysql_stmt_bind_result()mysql_stmt_affected_rows() などを呼び出すことができることを意味します。

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

mysql_stmt_next_result() の使用方法を示す例については、セクション23.8.20「C API のプリペアド CALL ステートメントのサポート」を参照してください。

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

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

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