(PHP 5)
mysqli_stmt::bind_result -- mysqli_stmt_bind_result — 結果を保存するため、プリペアドステートメントに変数をバインドする
オブジェクト指向型
手続き型
結果セットのカラムを変数にバインドします。
データを取得するために mysqli_stmt_fetch() がコールされた場合、MySQL クライアント/ サーバ プロトコルはバインドされたカラムのデータを var1, ... に格納します。
注意:
すべてのカラムを、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