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($resultMAXDB_NUM);
printf ("%s (%s)\n"$row[0], $row[1]);  

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

/* 連想配列および数値添字の配列 */
$row maxdb_fetch_array($resultMAXDB_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)

参考