CascadiaPHP 2024

pg_fetch_all_columns

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

pg_fetch_all_columnsBusca todas as linhas em uma determinada coluna de resultado como um array

Descrição

pg_fetch_all_columns(PgSql\Result $result, int $field = 0): array

pg_fetch_all_columns() retorna um array que contém todas as linhas (registros) em uma determinada coluna da instância PgSql\Result.

Nota: Esta função define campos NULL como o valor null do PHP.

Parâmetros

result

Uma instância de PgSql\Result, retornada por pg_query(), pg_query_params() ou pg_execute() (entre outras).

field

Número da coluna. O padrão é a primeira coluna se não for especificado.

Valor Retornado

Um array com todos os valores na coluna de resultados.

Registro de Alterações

Versão Descrição
8.1.0 O parâmetro result agora espera uma instância de PgSql\Result; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 Exemplo de pg_fetch_all_columns()

<?php
$conn
= pg_pconnect("dbname=publisher");
if (!
$conn) {
echo
"Ocorreu um erro.\n";
exit;
}

$result = pg_query($conn, "SELECT title, name, address FROM authors");
if (!
$result) {
echo
"Ocorreu um erro.\n";
exit;
}

// Obtém um array de todos os nomes de autores
$arr = pg_fetch_all_columns($result, 1);

var_dump($arr);

?>

Veja Também

  • pg_fetch_all() - Busca todas as linhas de um resultado como um array

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