文字

pg_fetch_all_columns

(PHP 5 >= 5.1.0)

pg_fetch_all_columnsFetches all rows in a particular result column as an array

说明

array pg_fetch_all_columns ( resource $result [, int $column = 0 ] )

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 column is 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() - 从结果中提取所有行作为一个数组

用户评论:

[#1] spambin at ya dot ru [2013-11-21 11:48:19]

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)

<?php
$result 
pg_query("
    SELECT 'something'
    WHERE 1 = 2
"
);
var_dumppg_fetch_all($result) ); // boolean false
var_dumppg_fetch_all_columns($result) ); // array(0){}
?>

[#2] strata_ranger at hotmail dot com [2009-04-04 18:43:39]

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($result2);

// 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($resultpg_field_num($result'birthday'));

?>

[#3] massiv at nerdshack dot com [2008-10-22 05:56:42]

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

?>

上一篇: 下一篇: