PHP 8.5.0 Alpha 2 available for testing

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 los campos NULL al valor PHP null.

Parámetros

result

Una instancia PgSql\Result, devuelta por pg_query(), pg_query_params(), o pg_execute() (entre otros).

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 El parámetro result ahora espera una instancia de PgSql\Result ; anteriormente, se esperaba un resource.

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

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