pg_fetch_array
(PHP 4, PHP 5, PHP 7)
pg_fetch_array — Pobiera wiersz jako tablicę
Opis
pg_fetch_array
( resource $wynik
[, int $wiersz
[, int $typ_wyniku
= PGSQL_BOTH
]] ) : array
pg_fetch_array() jest rozszerzeną wersją
pg_fetch_row(). Oprócz zapisywania danych
w tablicy wyników indeksowanej numerycznie, zapisuje je też używając indeksów
przyporządkowujących (asocjacyjnych) tej tablicy, nazwy kolumn traktując jako klucze.
Domyślnie zapisywane są oba rodzaje indeksów.
Informacja: Ta funkcja ustala wartość pól NULL
na NULL
.
pg_fetch_array() NIE jest znacznie
wolniejsze, niż używanie pg_fetch_row(), oraz
jest zdecydowanie łatwiejsze do użycia.
Parametry
-
wynik
-
Identyfikator wyniku zapytania PostgreSQL, zwrócony przez pg_query(),
pg_query_params() lub pg_execute()
(między innymi).
-
wiersz
-
Numer wiersza w wyniku do pobrania. Wiersze są numerowane od zera w górę. Jeśli jest pominięty
albo wynosi NULL
, pobrany zostanie kolejny wiersz.
-
typ_wyniku
-
Opcjonalny parametr kontrolujący
w jaki sposób zwrócona tablica (ang. array) jest indeksowana.
typ_wyniku
jest stałą i może przyjąć
następujące wartości: PGSQL_ASSOC
,
PGSQL_NUM
oraz PGSQL_BOTH
.
Używając PGSQL_NUM
, pg_fetch_array()
zwróci tablicę z indeksami numerycznymi, użycie
PGSQL_ASSOC
zwróci wyłącznie indeksy asocjacyjne
podczas, gdy PGSQL_BOTH
, wartość domyślna, zwróci oba
rodzaje indeksów - numeryczne i asocjacyjne.
Zwracane wartości
Tablica (ang. array) indeksowana numerycznie (zaczynając od zera) lub
asocjacyjnie (indeksowana przez nazwy kolumn), lub tak i tak.
Każda wartość w tablicy (ang. array) jest przedstawiona jako łańcuch
(ang. string). Wartości NULL z bazy danych
są zwracane jako NULL
.
FALSE
zostanie zwrócone jeśli wiersz
przekracza ilość
wierszy w całym zbiorze, nie ma więcej wierszy, lub dowolnym innym błędzie.
Przykłady
Przykład #1 pg_fetch_array() - przykład
<?php
$polaczenie_z_baza = pg_pconnect("dbname=wydawca");
if (!$polaczenie_z_baza) {
echo "Wystąpił błąd.\n";
exit;
}
$wynik = pg_query($polaczenie_z_baza, "SELECT autor, email FROM autorzy");
if (!$wynik) {
echo "Wystąpił błąd.\n";
exit;
}
$tab = pg_fetch_array($wynik, 0, PGSQL_NUM);
echo $tab[0] . " <- Wiersz 1 Autor\n";
echo $tab[1] . " <- Wiersz 1 E-mail\n";
// Parametr wiersz jest opcjonalny; można podać w zamian NULL,
// by podać typ_wyniku. Kolejne wywołanie funkcji pg_fetch_array
// zwróci następny wiersz.
$tab = pg_fetch_array ($wynik, 1, PGSQL_ASSOC);
echo $tab["autor"] . " <- Wiersz 2 Autor\n";
echo $tab["email"] . " <- Wiersz 2 E-mail\n";
$tab = pg_fetch_array($wynik);
echo $tab["autor"] . " <- Wiersz 3 Autor\n";
echo $tab[1] . " <- Wiersz 3 E-mail\n";
?>