pg_fetch_array
行を配列として取得する
説明
arrayfalse pg_fetch_array(PgSql\Result $result
, intnull $row
= null
, int $mode
= PGSQL_BOTH
)
pg_fetch_array は拡張版の
pg_fetch_row です。結果配列のフィールド番号に
対応する要素にデータを格納し、それに加えてフィールド名をキーとした
連想配列にも格納します。デフォルトで、両方ともが有効になっています。
注意: この関数は、
NULL フィールドに PHPの null
値を設定します。
pg_fetch_array は、
pg_fetch_row に比べてきわめて遅いというわけでは
「ありません」。そして、きわめて簡単に使用できます。
パラメータ
-
result
-
pg_query、pg_query_params や (様々な関数がありますが、特に) pg_execute が返した PgSql\Result クラスのインスタンス。
-
row
-
取得する行番号。最初の行は 0 です。省略したり null
を指定したりした場合は、
次の行を取得します。
-
mode
-
返される配列のインデックスを制御するオプションの引数です。
mode
は定数で、以下の値を取ることができます。:
PGSQL_ASSOC
, PGSQL_NUM
, PGSQL_BOTH
。
PGSQL_NUM
を使うと、配列のインデックスを数値にした配列を返します。PGSQL_ASSOC
を使うと、連想配列のインデックスを返します。PGSQL_BOTH
を指定すると、数値と連想配列のインデックスを両方含めた形で配列を返します。
戻り値
0 から始まる数値添字の配列か連想配列(フィールド名をキーとする)、
あるいはその両方を返します。配列の各要素の値は文字列です。
データベースの NULL
値は、null
として返します。
row
が結果の行数より大きい場合や、行が存在しない場合、
そしてそれ以外のエラーが発生した場合は false
を返します。
SELECT 以外のクエリから結果を取得しようとした場合も、false
を返します。
例
例1 pg_fetch_array の例
<?php
$conn = pg_pconnect("dbname=publisher");
if (!$conn) {
echo "An error occurred.\n";
exit;
}
$result = pg_query($conn, "SELECT author, email FROM authors");
if (!$result) {
echo "An error occurred.\n";
exit;
}
$arr = pg_fetch_array($result, 0, PGSQL_NUM);
echo $arr[0] . " <- Row 1 Author\n";
echo $arr[1] . " <- Row 1 E-mail\n";
// row パラメータはオプションです。result_type を指定
// したい場合は NULL を渡しておきます。pg_fetch_array を続けてコール
// すると、次の行を取得します。
$arr = pg_fetch_array($result, NULL, PGSQL_ASSOC);
echo $arr["author"] . " <- Row 2 Author\n";
echo $arr["email"] . " <- Row 2 E-mail\n";
$arr = pg_fetch_array($result);
echo $arr["author"] . " <- Row 3 Author\n";
echo $arr[1] . " <- Row 3 E-mail\n";
?>
参考
- pg_fetch_row
- pg_fetch_object
- pg_fetch_result