(PHP 5 >= 5.1.0)
pg_fetch_all_columns — Gibt alle Werte einer bestimmten Spalte eines Abfrageergebnisses in einem Array zurück
pg_fetch_all_columns() gibt ein Array zurück, das alle Werte einer bestimmten Spalte eines Abfrageergebnisses enthält.
Hinweis: Diese Funktion setzt NULL-Felder auf den PHP Wert-NULL.
PostgreSQL-Abfrageergebnis, das (unter anderem) von pg_query(), pg_query_params() oder pg_execute() zurückgegeben wurde.
Die Nummer der Spalte (beginnend bei 0), die aus dem Abfrageergebnis extrahiert werden soll. Falls nichts angegeben wurde, wird die erste Spalte ausgelesen.
Ein array, in dem alle Werte der Ergebnisspalte gespeichert sind.
Falls die Spaltennummer column größer ist, als das Abfrageergebnis Spalten hat oder, wenn ein anderer Fehler auftritt, wird FALSE zurckgegeben.
Beispiel #1 pg_fetch_all_columns()-Beispiel
<?php
$conn = pg_pconnect("dbname=publisher");
if (!$conn) {
echo "Ein Fehler ist aufgetreten.\n";
exit;
}
$result = pg_query($conn, "SELECT title, name, address FROM authors");
if (!$result) {
echo "Ein Fehler ist aufgetreten.\n";
exit;
}
// Die Namen aller Autoren in einem Array holen
$arr = pg_fetch_all_columns($result, 1);
var_dump($arr);
?>
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'));
?>
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);
?>