(PHP 4, PHP 5, PHP 7, PHP 8)
pg_fetch_array — 行を配列として取得する
pg_fetch_array() は、取得した行(レコード)を 配列で返します。
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
は、戻り値の形式を制御する
オプションのパラメータです。mode
は定数であり、次の値のどれかとすることが可能です。
PGSQL_ASSOC
、PGSQL_NUM
および PGSQL_BOTH
。
PGSQL_NUM
を使用すると、pg_fetch_array()
は数値添字の配列を返します。また、PGSQL_ASSOC
を使用すると連想配列形式で返します。PGSQL_BOTH
がデフォルト設定で、これは数値添字の配列と連想配列の両方を返します。
0 から始まる数値添字の配列か連想配列(フィールド名をキーとする)、
あるいはその両方を返します。配列の各要素の値は文字列です。
データベースの NULL
値は、null
として返します。
row
が結果の行数より大きい場合や、行が存在しない場合、
そしてそれ以外のエラーが発生した場合は false
を返します。
SELECT 以外のクエリから結果を取得しようとした場合も、false
を返します。
バージョン | 説明 |
---|---|
8.1.0 |
result は、PgSql\Result
クラスのインスタンスを期待するようになりました。
これより前のバージョンでは、リソース を期待していました。
|
例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";
?>