PHP 8.4.2 Released!

pg_fetch_all_columns

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

pg_fetch_all_columns Gibt alle Werte einer bestimmten Spalte eines Abfrageergebnisses in einem Array zurück

Beschreibung

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

pg_fetch_all_columns() gibt ein Array zurück, das alle Werte einer bestimmten Spalte einer PgSql\Result-Instanz enthält.

Hinweis: Diese Funktion setzt NULL-Felder auf den PHP-Wert null.

Parameter-Liste

result

Eine PgSql\Result-Instanz, die von pg_query(), pg_query_params() oder pg_execute() (unter anderen) zurückgegeben wurde.

field

Die Nummer der Spalte. Falls nichts angegeben wurde, wird die erste Spalte ausgelesen.

Rückgabewerte

Ein array, in dem alle Werte der Ergebnisspalte gespeichert sind.

Changelog

Version Beschreibung
8.1.0 Der Parameter result erwartet nun eine PgSql\Result-Instanz; vorher wurde eine Ressource erwartet.

Beispiele

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);

?>

Siehe auch

  • pg_fetch_all() - Liefert alle Zeilen eines Abfrageergebnisses als Array

add a note

User Contributed Notes 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