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 — Изважда всички редове като масив от определена колона на резултат
Описание
pg_fetch_all_columns() връща масив, който се състои от всички редове (записи) на определена колона в даден резултатен ресурс.
Забележка: Тази функция установява NULL полетата със стойността null; в PHP.
Параметри
- result
-
Резултатен ресурс от заявка в PostgreSQL, върнат от pg_query(), pg_query_params(), pg_execute() и др.
- column
-
Номер на колоната, започвайки от нула, която да бъде извлечена от резултатния ресурс. Ако не е зададена, по подразбиране се приема първата колона.
Връщани стойности
Масив с всички стойности в резултатната колона.
Връща FALSE ако за column е подадена по-висока стойност от броя колони в резултата, или при каква да е друга грешка.
Примери
Example #1 Пример за pg_fetch_all_columns()
<?php
$conn = pg_pconnect("dbname=publisher");
if (!$conn) {
echo "Настъпи грешка.\n";
exit;
}
$result = pg_query($conn, "SELECT title, name, address FROM authors");
if (!$result) {
echo "Настъпи грешка.\n";
exit;
}
// Взима масив с имената на всички автори
$arr = pg_fetch_all_columns($result, 1);
var_dump($arr);
?>
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);
?>
