SunshinePHP Developer Conference 2015

pg_fetch_all_columns

(PHP 5 >= 5.1.0)

pg_fetch_all_columns Récupère toutes les lignes d'une colonne de résultats particulière en tant que tableau

Description

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

pg_fetch_all_columns() retourne un tableau qui contient toutes les lignes (enregistrements) d'une colonne particulière d'une ressource de résultats.

Note: Cette fonction définit les champs NULL à la valeur PHP NULL.

Liste de paramètres

result

Ressource de résultats d'une requête PostgreSQL, retournée par pg_query(), pg_query_params() ou pg_execute() (entre autres).

column

Numéro de la colonne, commençant à 0, à récupérer depuis la ressource de résultats. Par défaut, la première colonne si ce paramètre n'est pas spécifié.

Valeurs de retour

Un tableau contenant toutes les valeurs d'une colonne du résultat.

FALSE est retourné si column est plus grand que le nombre de colonnes du résultat ou si toutes autres erreurs surviennent.

Exemples

Exemple #1 Exemple avec pg_fetch_all_columns()

<?php 
$conn 
pg_pconnect("dbname=publisher");
if (!
$conn) {
  echo 
"Une erreur est survenue.\n";
  exit;
}

$result pg_query($conn"SELECT title, name, address FROM authors");
if (!
$result) {
  echo 
"Une erreur est survenue.\n";
  exit;
}

// Récupère un tableau contenant tous les noms d'auteurs
$arr pg_fetch_all_columns($result1);

var_dump($arr);

?>

Voir aussi

add a note add a note

User Contributed Notes 3 notes

up
1
strata_ranger at hotmail dot com
5 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
0
spambin at ya dot ru
11 months 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
6 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