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

# maxdb_fetch_array

# maxdb_result::fetch_array

(PECL maxdb >= 1.0)

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

### 説明

手続き型

maxdb_fetch_array ( resource `$result` [, int `$resulttype` ] ) : mixed

オブジェクト指向型

maxdb_result::fetch_array ([ int `$resulttype` ] ) : mixed

取得した行に対応する配列を返します。 `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` を返します。

### 例

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

### 参考

- maxdb_fetch_assoc() - 結果の行を連想配列として取得する
- maxdb_fetch_row() - 結果の行を数値添字の配列として取得する
- maxdb_fetch_resource()