mysqli_stmt::bind_result
mysqli_stmt_bind_result
結果を保存するため、プリペアドステートメントに変数をバインドする
説明
オブジェクト指向型
public bool mysqli_stmt::bind_result(mixed &$var
, mixed &...$vars
)
bool mysqli_stmt_bind_result(mysqli_stmt $statement
, mixed &$var
, mixed &...$vars
)
データを取得するために
mysqli_stmt_fetch がコールされた場合、MySQL クライアント/
サーバー プロトコルはバインドされたカラムのデータを
var
/vars
に格納します。
結果セットが一部取得された後であっても、
カラムはいつでもバインドしたり、再バインドしたりできます。
新しいバインドは、
mysqli_stmt_fetch
が次回コールされた時に効力を発揮します。
注意:
すべてのカラムを、mysqli_stmt_execute
をコールしてから mysqli_stmt_fetch
をコールするまでの間に
バインドしておく必要があることに注意しましょう。
注意:
カラムの型に応じて、
バインド変数の型も対応する PHP の型に自動的に変換されます。
ヒント
この関数は、結果が単一の値の場合に役立つものです。
反復可能な結果セットを取得したり、
行をオブジェクトや配列で取得したい場合は、
mysqli_stmt_get_result を使って下さい。
パラメータ
-
stmt
-
手続き型のみ:
mysqli_stmt_init が返す mysqli_stmt オブジェクト。
-
var
-
バインドする最初の変数。
-
vars
-
バインドする残りの変数。
戻り値
成功した場合に true
を、失敗した場合に false
を返します。
例
例1 オブジェクト指向型
<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
/* ステートメントを準備します */
$stmt = $mysqli->prepare("SELECT Code, Name FROM Country ORDER BY Name LIMIT 5");
$stmt->execute();
/* 変数をプリペアドステートメントにバインドします */
$stmt->bind_result($col1, $col2);
/* 値を取得します */
while ($stmt->fetch()) {
printf("%s %s\n", $col1, $col2);
}
例2 手続き型
<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect("localhost", "my_user", "my_password", "world");
/* ステートメントを準備します */
$stmt = mysqli_prepare($link, "SELECT Code, Name FROM Country ORDER BY Name LIMIT 5");
mysqli_stmt_execute($stmt);
/* 変数をプリペアドステートメントにバインドします */
mysqli_stmt_bind_result($stmt, $col1, $col2);
/* 値を取得します */
while (mysqli_stmt_fetch($stmt)) {
printf("%s %s\n", $col1, $col2);
}
AFG Afghanistan
ALB Albania
DZA Algeria
ASM American Samoa
AND Andorra
参考
- mysqli_stmt_get_result
- mysqli_stmt_bind_param
- mysqli_stmt_execute
- mysqli_stmt_fetch
- mysqli_prepare
- mysqli_stmt_prepare