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'));
?>
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
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($result, 1);
var_dump($arr);
?>
pg_fetch_all_columns
05-Apr-2009 02:43
22-Oct-2008 12:56
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);
?>
