Web aym.pekori.to

maxdb_fetch_array

(PECL)

maxdb_fetch_array

(no version information, might be only in CVS)

result->fetch_array -- 結果の行を連想配列、数値添字配列あるいはその両方で取得する

説明

手続き型

mixed maxdb_fetch_array ( resource result [, int resulttype] )

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

class result {

mixed fetch_array ( [int resulttype] )

}

取得した行に対応する配列を返します。 result が表す結果セットに行がもう存在しない場合には NULL を返します。

maxdb_fetch_array()maxdb_fetch_row() 関数を拡張したものです。 データを数値添字の配列に保存することに加え、 maxdb_fetch_array() 関数は結果を連想配列でも保存します。 その際は、結果セットのフィールド名をキーとして使用します。

注意: この関数により返されるフィー ルド名は 大文字小文字を区別 します。

注意: この関数は、 NULL フィールドに PHPの NULL 値を設定します。

結果の中に同名のカラムが複数存在する場合は、最後のカラムが優先され、 その前に現れたデータを上書きします。同名の複数のカラムにアクセスするには、 数値添字形式の配列を使用します。

オプションの 2 番目の引数 resulttype は、 行データからどのような形式の配列を作成するかを指定する定数です。 このパラメータに指定可能な値は、 MAXDB_ASSOC、MAXDB_ASSOC_UPPER、MAXDB_ASSOC_LOWER、MAXDB_NUM あるいは MAXDB_BOTH のいずれかです。デフォルトでは maxdb_fetch_array() 関数は MAXDB_BOTH を使用します。これは、このパラメータに MAXDB_NUM および MAXDB_ASSOC を指定したのと同じ動作をします。

定数 MAXDB_ASSOC を使用すると、この関数は maxdb_fetch_assoc() と同じように動作します。一方、MAXDB_NUM の場合は maxdb_fetch_row() と同じ動作となります。 最後のオプション MAXDB_BOTH は、両方の属性をひとつの配列に含めます。

定数 MAXDB_ASSOC_UPPER を使用すると、この関数の動作は MAXDB_ASSOC を使用した場合とほぼ同じになります。ただ、 配列のインデックスが、フィールド名を大文字にしたものになるという点が違います。

定数 MAXDB_ASSOC_LOWER を使用すると、この関数の動作は MAXDB_ASSOC を使用した場合とほぼ同じになります。ただ、 配列のインデックスが、フィールド名を小文字にしたものになるという点が違います。

返り値

取得した行に対応する配列、あるいは結果セットに行がもうない場合に NULL を返します。

参考

maxdb_fetch_assoc(), maxdb_fetch_row(), maxdb_fetch_resource().

例 1. オブジェクト指向型

<?php
$maxdb
= new maxdb("localhost", "MONA", "RED", "DEMODB");

/* 接続を調べます */
if (maxdb_connect_errno()) {
   
printf("接続に失敗しました: %s\n", maxdb_connect_error());
   exit();
}

$query = "SELECT name, state FROM hotel.city ORDER by zip";
$result = $maxdb->query($query);

/* 数値添字の配列 */
$row = $result->fetch_array(MAXDB_NUM);
printf ("%s (%s)\n", $row[0], $row[1]);  

/* 連想配列 */
$row = $result->fetch_array(MAXDB_ASSOC);
printf ("%s (%s)\n", $row["NAME"], $row["STATE"]);  

/* 連想配列および数値添字の配列 */
$row = $result->fetch_array(MAXDB_BOTH);
printf ("%s (%s)\n", $row[0], $row["STATE"]);  

/* 結果セットを開放します */
$result->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 name, state FROM hotel.city ORDER by zip";
$result = maxdb_query($link, $query);

/* 数値添字の配列 */
$row = maxdb_fetch_array($result, MAXDB_NUM);
printf ("%s (%s)\n", $row[0], $row[1]);  

/* 連想配列 */
$row = maxdb_fetch_array($result, MAXDB_ASSOC);
printf ("%s (%s)\n", $row["NAME"], $row["STATE"]);  

/* 連想配列および数値添字の配列 */
$row = maxdb_fetch_array($result, MAXDB_BOTH);
printf ("%s (%s)\n", $row[0], $row["STATE"]);  

/* 結果セットを開放します */
maxdb_free_result($result);

/* 接続を閉じます */
maxdb_close($link);
?>

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

New York (NY)
New York (NY)
Long Island (NY)