Dutch PHP Conference 2025 - Call For Papers

pg_fetch_all_columns

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

pg_fetch_all_columnsFetches 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.

Зауваження: Ця функція встановлює NULL-полям значення PHP null.

Параметри

result

Примірник PgSql\Result, якого повертає одна з функцій pg_query(), pg_query_params() або pg_execute() (серед інших).

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

?>

Прогляньте також

add a note

User Contributed Notes 3 notes

up
3
strata_ranger at hotmail dot com
15 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'));

?>
up
2
spambin at ya dot ru
10 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){}
?>
up
0
massiv at nerdshack dot com
15 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);

?>
To Top