PHP 8.4.1 Released!

pg_fetch_all_columns

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

pg_fetch_all_columnsВыбирает все записи из одной колонки результата запроса и помещает их в массив

Описание

pg_fetch_all_columns(PgSql\Result $result, int $field = 0): array

pg_fetch_all_columns() возвращает массив, содержащий все записи одной колонки экземпляра PgSql\Result.

Замечание: Эта функция устанавливает NULL-поля в значение null PHP.

Список параметров

result

Экземпляр класса PgSql\Result, который возвращают функции pg_query(), pg_query_params() или pg_execute() (среди прочего).

field

Номер колонки. Если параметр не задан, будет обработана первая (нулевая) колонка.

Возвращаемые значения

Массив значений колонки результата запроса.

Список изменений

Версия Описание
8.1.0 Параметр result теперь ожидает экземпляр класса PgSql\Result; раньше параметр ожидал ресурс (resource).

Примеры

Пример #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);

?>

Смотрите также

  • pg_fetch_all() - Выбирает все данные из результата запроса и помещает их в массив

Добавить

Примечания пользователей 3 notes

up
3
strata_ranger at hotmail dot com
15 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
0
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