pg_fetch_all_columns()
(PHP 5 >= 5.1.0, PHP 7)
Fetches all rows in a particular result column as an array
说明
pg_fetch_all_columns(resource $result[,int $column= 0]): array
pg_fetch_all_columns() returns an array that contains all rows(records)in a particular column of the result resource.
Note:此函数将 NULL 字段设置为 PHP
NULL
值。
参数
- $result
PostgreSQL query result resource, returned by pg_query(),pg_query_params() or pg_execute()(among others).
- $column
Column number, zero-based, to be retrieved from the result resource. Defaults to the first column if not specified.
返回值
An array with all values in the result column.
FALSE
is returned if$columnis larger than the number of columns in the result, or on any other error.
范例
Example #1 pg_fetch_all_columns() example
<?php $conn = pg_pconnect("dbname=publisher"); if (!$conn) { echo "An error occurred.\n"; exit; } $result = pg_query($conn, "SELECT title, name, address FROM authors"); if (!$result) { echo "An error occurred.\n"; exit; } // Get an array of all author names $arr = pg_fetch_all_columns($result, 1); var_dump($arr); ?>
参见
pg_fetch_all()
从结果中提取所有行作为一个数组
Unfortunate that pg_fetch_all_columns() doesn't support fetching a column by its name -- if you want to do that, you'll need to use pg_field_num() as an intermediary: For example: <?php if ($foo) $cols = "email_address"; else $cols = "last_name, middle_init"; $result = pg_query("Select first_name, $info, birthday from users_table"); // Problem -- does column #2 refer to the 'birthday' or 'middle_init' field? $array = pg_fetch_all_columns($result, 2); // Won't work, must use a column number instead of its name $array = pg_fetch_all_columns($result, 'birthday'); // Works $array = pg_fetch_all_columns($result, pg_field_num($result, 'birthday')); ?>
pg_fetch_all_columns() returns array (empty array) even if the result set in empty (while pg_fetch_all() returns FALSE when the result set is empty) <? $result = pg_query(" SELECT 'something' WHERE 1 = 2 "); var_dump( pg_fetch_all($result) ); // boolean false var_dump( pg_fetch_all_columns($result) ); // array(0){} ?>
php 4 equivalent: <?php $conn = pg_pconnect("dbname=publisher"); if (!$conn) { echo "An error occured.\n"; exit; } $result = pg_query($conn, "SELECT title, name, address FROM authors"); if (!$result) { echo "An error occured.\n"; exit; } // Get an array of all author names $arr = array(); while ($line = pg_fetch_array($result)) { array_push($arr, $line['name']); } var_dump($arr); ?>