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 ( PgSql\Result $result , int $field = 0 ) : array

pg_fetch_all_columns() returns an array that contains all rows (records) in a particular column of the PgSql\Result instance.

Note: 此函数将 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 The result parameter expects an PgSql\Result instance now; previously, a 资源(resource) was expected.

范例

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);

?>

参见

User Contributed Notes

spambin at ya dot ru 21-Nov-2013 11:48
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){}
?>
strata_ranger at hotmail dot com 04-Apr-2009 06:43
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'));

?>
massiv at nerdshack dot com 22-Oct-2008 05:56
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);

?>
PHP8中文手册 由 站长在线 整理 版权归PHP文档组所有