pg_fetch_all_columns

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

pg_fetch_all_columns Recupera todas las filas de una columna particular de resultados como un array

Descripción

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

pg_fetch_all_columns() devuelve un array que contiene todas las filas (registros) de una columna particular de un recurso de resultados.

Nota: Esta función define campos NULOS al valor null de PHP.

Parámetros

result

An PgSql\Result instance, returned by pg_query(), pg_query_params() or pg_execute()(among others).

field

Número de la columna. Por omisión, la primera columna si no se especifica.

Valores devueltos

Un array que contiene todos los valores de una columna del resultado.

Historial de cambios

Versión Descripción
8.1.0 The result parameter expects an PgSql\Result instance now; previously, a recurso was expected.

Ejemplos

Ejemplo #1 Ejemplo con pg_fetch_all_columns()

<?php
$conn
= pg_pconnect("dbname=publisher");
if (!
$conn) {
echo
"Se ha producido un error.\n";
exit;
}

$result = pg_query($conn, "SELECT title, name, address FROM authors");
if (!
$result) {
echo
"Se ha producido un error.\n";
exit;
}

// Recupera un array que contiene todos los nombres de autores
$arr = pg_fetch_all_columns($result, 1);

var_dump($arr);

?>

Ver también

  • pg_fetch_all() - Obtiene todas las filas de un resultado como un array

add a note

User Contributed Notes 3 notes

up
3
strata_ranger at hotmail dot com
16 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
11 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
-1
massiv at nerdshack dot com
16 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