PHP 8.4.0 RC4 available for testing

pg_fetch_row

(PHP 4, PHP 5, PHP 7, PHP 8)

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

Описание

pg_fetch_row(PgSql\Result $result, ?int $row = null, int $mode = PGSQL_NUM): array|false

pg_fetch_row() выбирает одну строку из результата запроса result.

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

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

result

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

row

Номер выбираемой из результата запроса строки. Нумерация начинается с нуля. Если аргумент опущен или равен null, берётся следующая по очереди строка.

mode

Необязательный параметр, который управляет индексированием массив (array), который возвращает функция. Параметр mode — константа и принимает следующие значения: PGSQL_ASSOC, PGSQL_NUM и PGSQL_BOTH. С константой PGSQL_NUM функция возвращает массив с числовыми индексами, с константой PGSQL_ASSOC функция вернёт только ассоциативные индексы, а с PGSQL_BOTH — вернёт как числовые, так и ассоциативные индексы.

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

Численно индексированный массив значений из строки результата запроса. Индексация начинается с нуля. Значения представляются в виде строк. Значения NULL базы данных преобразуются в PHP null.

false, если row превышает число строк в результате запроса, когда строк в результате не осталось, и при прочих ошибках.

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

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

Примеры

Пример #1 Пример использования pg_fetch_row()

<?php

$conn
= pg_pconnect("dbname=publisher");
if (!
$conn) {
echo
"Произошла ошибка.\n";
exit;
}

$result = pg_query($conn, "SELECT author, email FROM authors");
if (!
$result) {
echo
"Произошла ошибка.\n";
exit;
}

while (
$row = pg_fetch_row($result)) {
echo
"Автор: $row[0] E-mail: $row[1]";
echo
"<br />\n";
}

?>

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

  • pg_query() - Выполняет запрос
  • pg_fetch_array() - Возвращает строку результата в виде массива
  • pg_fetch_object() - Выбирает строку результата запроса и возвращает данные в виде объекта
  • pg_fetch_result() - Возвращает запись из результата запроса

Добавить

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

up
5
post at zeller-johannes dot de
19 years ago
I wondered whether array values of PostgreSQL are converted to PHP arrays by this functions. This is not the case, they are stored in the returned array as a string in the form "{value1 delimiter value2 delimiter value3}" (See http://www.postgresql.org/docs/8.0/interactive/arrays.html#AEN5389).
up
3
pletiplot at seznam dot cz
18 years ago
Note, that when you retrieve some PG boolean value, you get 't' or 'f' characters which are not compatible with PHP bool.
up
0
eddie at eddiemonge dot com
15 years ago
pg_fetch_row is faster than pg_fetch_assoc when doing a query with * as the select parameter. Otherwise, with declared columns, the two are similar in speed.
up
0
darw75 at swbell dot net
23 years ago
a way to do this with 2 loops to insert data into a table...

$num = pg_numrows($result);
$col_num = pg_numfields($result);

for ($i=0; $i<$num; $i++) {
$line = pg_fetch_array($result, $i, PGSQL_ASSOC);
print "\t<tr bgcolor=#dddddd>\n";
for ($j=0; $j<$col_num; $j++){
list($col_name, $col_value) =each($line);
print "\t\t<TD ALIGN=RIGHT><FONT SIZE=1 FACE='Geneva'>$col_value</FONT></TD>\n";
}
echo "<br>";
}
up
-1
Matthew Wheeler
21 years ago
Note that the internal row counter is incremented BEFORE the row is retrieved. This causes an off by one error if you try to do:

pg_result_seek($resid,0);
pg_fetch_row($resid);

you will get back the SECOND result not the FIRST.
To Top