maxdb_stmt_fetch

(PECL)

maxdb_stmt_fetch

(no version information, might be only in CVS)

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

説明

手続き型

bool maxdb_stmt_fetch ( resource stmt )

オブジェクト指向型 (メソッド)

class stmt {

bool fetch ( void )

}

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

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

返り値

表 1. 返り値

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

参考

maxdb_prepare(), maxdb_stmt_errno(), maxdb_stmt_error(), maxdb_stmt_bind_result()

例 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)