my_bool mysql_stmt_bind_result(MYSQL_STMT *stmt, MYSQL_BIND *bind)
説明
mysql_stmt_bind_result()
は、結果セット内の出力カラムをデータバッファーおよび長さバッファーに関連付ける (つまりバインドする) ために使用します。mysql_stmt_fetch()
がデータをフェッチするために呼び出されると、MySQL クライアント/サーバープロトコルはバインドされたカラムのデータを、指定されたバッファーに配置します。
mysql_stmt_fetch()
を呼び出す前に、すべてのカラムがバッファーにバインドされている必要があります。bind
は MYSQL_BIND
構造の配列のアドレスです。クライアントライブラリは、配列に、結果セットのカラムごとに 1 つの要素が含まれることを期待します。カラムを MYSQL_BIND
構造にバインドしない場合、mysql_stmt_fetch()
は単にデータフェッチを無視します。プロトコルはまとめてデータ値を返さないため、バッファーはデータ値を保持できる十分な大きさがあるべきです。
結果セットが部分的に取得されたあとでも、カラムはいつでもバインドまたは再バインドできます。新しいバインドタスクは、次に mysql_stmt_fetch()
が呼び出されたときに有効になります。アプリケーションが結果セット内のカラムをバインドし、mysql_stmt_fetch()
を呼び出すものとします。クライアント/サーバープロトコルはバインドされたバッファーにデータを返します。その後、アプリケーションはカラムを別の一連のバッファーにバインドするものとします。mysql_stmt_fetch()
への次の呼び出し時に、プロトコルは新しくバインドされたバッファーにデータを配置します。
カラムをバインドするには、アプリケーションで mysql_stmt_bind_result()
を呼び出し、値を格納する出力バッファーの型、アドレス、および長さを渡します。セクション23.7.9「C API プリペアドステートメントデータ構造」に各 MYSQL_BIND
要素のメンバーおよび出力値を受け取るために設定する方法について説明します。
戻り値
成功の場合はゼロ。エラーが発生した場合、ゼロ以外。
エラー
-
CR_UNSUPPORTED_PARAM_TYPE
変換はサポートされていません。
buffer_type
値は無効か、サポートされるいずれの型でもない可能性があります。 -
CR_OUT_OF_MEMORY
メモリー不足。
-
CR_UNKNOWN_ERROR
不明なエラーが発生しました。
例
セクション23.7.11.11「mysql_stmt_fetch()」の例を参照してください。