mysql_fetch_array

(PHP 3, PHP 4 )

mysql_fetch_array -- 連想配列、添字配列、またはその両方として結果の行を取得する

説明

array mysql_fetch_array ( resource result, int [result_type] )

取得した行に対応する配列を返します。最後の行までいった場合は、 FALSE を返します。

mysql_fetch_array() は、 mysql_fetch_row() の拡張版です。 この関数は、result配列の番号インデックスにデータを格納するだけでなく、 フィールド名をキーとした連想配列にもデータを格納します。

結果の中で二つ以上のカラムが同じフィールド名を有している場合、 最後のカラムが優先されます。 同名の他のカラムにアクセスするには、そのカラムの数値インデックス を使うかまたはカラムの別名を定義する必要があります。

select tone.field as foo ttwo.field as bar from tone, ttwo


注意すべき点としては、 mysql_fetch_array() は、 非常に高い附加価値を有しているにもかかわらず、 mysql_fetch_row() よりそれほど遅くはないと いうことが言えます。

mysql_fetch_array() の オプションの2番目の引数 result_type は定数であり、 次の値をとります。: MYSQL_ASSOC, MYSQL_NUM, MYSQL_BOTH この機能は PHP 3.0.7で追加された機能です。この引数のデフォルト値は、 MYSQL_BOTHです。

MYSQL_BOTHを使用すると、連想添字と数値添字を共に有する配列を取得 します。MYSQL_ASSOCを使用すると、( mysql_fetch_assoc() の動作と同様に)連想添字のみ が取得され、MYSQL_NUMを使用すると、 ( mysql_fetch_row() の動作と同様に数値添字のみが 取得されます。

より詳細な情報については、 mysql_fetch_row() mysql_fetch_assoc() も参照下さい。

例 1 mysql_fetch_array() の例

 ?php
mysql_connect($host, $user, $password);
mysql_select_db("database");
$result = mysql_query("select user_id, fullname from table");
while ($row = mysql_fetch_array($result)) {
    echo "user_id: ".$row["user_id"]." br \n";
    echo "user_id: ".$row[0]." br \n";
    echo "fullname: ".$row["fullname"]." br \n";
    echo "fullname: ".$row[1]." br \n";
}
mysql_free_result($result);
?