プリペアドステートメントの結果を取得し、バインド変数に格納する

# maxdb_stmt_fetch

# maxdb_stmt::fetch

(PECL maxdb >= 1.0)

maxdb_stmt_fetch -- maxdb_stmt::fetch — プリペアドステートメントの結果を取得し、バインド変数に格納する

### 説明

手続き型

maxdb_stmt_fetch ( resource `$stmt` ) : bool

オブジェクト指向型

maxdb_stmt::fetch ( void ) : bool

maxdb_stmt_fetch() は、 maxdb_stmt_bind_result() でバインドした変数を使用して、 行のデータを返します。

> 注意:

> maxdb_stmt_fetch() をコールする前に、 すべてのカラムがアプリケーションによってバインドされている必要があることに注意しましょう。

### 返り値

返り値
値 | 説明
--- | ---
`TRUE` | 成功。データが取得されました。
`FALSE` | エラーが発生しました。
`NULL` | 行/データが、もう存在しません。

### 例

例1 オブジェクト指向型

`<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");
/* 接続を調べます */
if (maxdb_connect_errno()) {
printf("接続に失敗しました: %s\n", maxdb_connect_error());
exit();
}
$query = "SELECT zip, name FROM hotel.city ORDER by name";
if ($stmt = $maxdb->prepare($query)) {
/* ステートメントを実行します */
$stmt->execute();
/* 結果変数にバインドします */
$stmt->bind_result($name, $code);
/* 値を取得します */
while ($stmt->fetch()) {
printf ("%s (%s)\n", $name, $code);
}
/* ステートメントを閉じます */
$stmt->close();
}
/* 接続を閉じます */
$maxdb->close();
?>`

例2 手続き型

`<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");
/* 接続を調べます */
if (maxdb_connect_errno()) {
printf("接続に失敗しました: %s\n", maxdb_connect_error());
exit();
}
$query = "SELECT zip, name FROM hotel.city ORDER by name";
if ($stmt = maxdb_prepare($link, $query)) {
/* ステートメントを実行します */
maxdb_stmt_execute($stmt);
/* 結果変数にバインドします */
maxdb_stmt_bind_result($stmt, $name, $code);
/* 値を取得します */
while (maxdb_stmt_fetch($stmt)) {
printf ("%s (%s)\n", $name, $code);
}
/* ステートメントを閉じます */
maxdb_stmt_close($stmt);
}
/* 接続を閉じます */
maxdb_close($link);
?>`

上の例の出力は、 たとえば以下のようになります。

    12203 (Albany)
    60601 (Chicago)
    60615 (Chicago)
    45211 (Cincinnati)
    33575 (Clearwater)
    75243 (Dallas)
    32018 (Daytona Beach)
    33441 (Deerfield Beach)
    48226 (Detroit)
    90029 (Hollywood)
    92714 (Irvine)
    90804 (Long Beach)
    11788 (Long Island)
    90018 (Los Angeles)
    70112 (New Orleans)
    10019 (New York)
    10580 (New York)
    92262 (Palm Springs)
    97213 (Portland)
    60018 (Rosemont)
    95054 (Santa Clara)
    20903 (Silver Spring)
    20005 (Washington)
    20019 (Washington)
    20037 (Washington)

### 参考

- maxdb_prepare() - 後で実行するための SQL 文を準備する
- maxdb_stmt_errno() - 直近のステートメントコール時のエラーコードを返す
- maxdb_stmt_error() - 直近のステートメントコール時のエラー文字列を返す
- maxdb_stmt_bind_result() - 結果を保存するために、変数をプリペアドステートメントにバインドする