mysqli_stmt::bind_result
mysqli_stmt_bind_result
(PHP 5, PHP 7)
mysqli_stmt::bind_result -- mysqli_stmt_bind_result — 結果を保存するため、プリペアドステートメントに変数をバインドする
説明
オブジェクト指向型
手続き型
mysqli_stmt_bind_result
( mysqli_stmt $stmt
, mixed &$var
, mixed &...$vars
) : bool
結果セットのカラムを変数にバインドします。
データを取得するために
mysqli_stmt_fetch() がコールされた場合、MySQL クライアント/
サーバー プロトコルはバインドされたカラムのデータを
var
/vars
に格納します。
注意:
すべてのカラムを、mysqli_stmt_execute() をコールしてから mysqli_stmt_fetch() をコールするまでの間に バインドしておく必要があることに注意しましょう。カラムの型に 応じて、バインド変数の型も対応する PHP の型に自動的に変換されます。
カラムのバインドや再バインドはいつでも可能で、たとえ結果セットを途中まで 取得した後であっても可能です。新しくバインドした内容が効力を発揮するのは、 次に mysqli_stmt_fetch() がコールされたときからです。
返り値
成功した場合に true
を、失敗した場合に false
を返します。
例
例1 オブジェクト指向型
<?php$mysqli = new mysqli("localhost", "my_user", "my_password", "world");if (mysqli_connect_errno()) { printf("Connect failed: %s\n", mysqli_connect_error()); exit();}/* ステートメントを準備します */if ($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); } /* ステートメントを閉じます */ $stmt->close();}/* 接続を閉じます */$mysqli->close();?>
例2 手続き型
<?php$link = mysqli_connect("localhost", "my_user", "my_password", "world");/* 接続状況をチェックします */if (!$link) { printf("Connect failed: %s\n", mysqli_connect_error()); exit();}/* ステートメントを準備します */if ($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); } /* ステートメントを閉じます */ mysqli_stmt_close($stmt);}/* 接続を閉じます */mysqli_close($link);?>
上の例の出力は以下となります。
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() - 実行するための SQL ステートメントを準備する
- mysqli_stmt_prepare() - SQL ステートメントを実行するために準備する
- mysqli_stmt_init() - ステートメントを初期化し、mysqli_stmt_prepare で使用するオブジェクトを返す
- mysqli_stmt_errno() - 直近のステートメントのコールに関するエラーコードを返す
- mysqli_stmt_error() - 直近のステートメントのエラー内容を文字列で返す