pg_fetch_all_columns
(PHP 5 >= 5.1.0, PHP 7, PHP 8)
pg_fetch_all_columns — Fetches all rows in a particular result column as an array
说明
pg_fetch_all_columns() returns an array that contains all rows (records) in a particular column of the PgSql\Result instance.
注意: 此函数将 NULL 字段设置为 PHP
null
值。
参数
-
result
-
An PgSql\Result instance, returned by pg_query(), pg_query_params() or pg_execute()(among others).
-
field
-
Column number. Defaults to the first column if not specified.
返回值
An array with all values in the result column.
更新日志
版本 | 说明 |
---|---|
8.1.0 |
现在 result 参数接受 PgSql\Result
实例,之前接受 资源(resource)。
|
范例
示例 #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);
?>

User Contributed Notes 3 notes
strata_ranger at hotmail dot com ¶
13 years ago
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'));
?>
spambin at ya dot ru ¶
8 years ago
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){}
?>
massiv at nerdshack dot com ¶
13 years ago
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);
?>
备份地址:http://www.lvesu.com/blog/php/function.pg-fetch-all-columns.php