(PHP 4, PHP 5, PHP 7)

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


array pg_fetch_row ( resource $result [, int $row ] )

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

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

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


Ресурс результата запроса PostgreSQL, возвращаемый функциями pg_query(), pg_query_params() или pg_execute() (в числе прочих).


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

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

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

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


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


if (!
$conn) {
"Произошла ошибка.\n";

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

while (
$row pg_fetch_row($result)) {
"Author: $row[0]  E-mail: $row[1]";
"<br />\n";

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

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


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>";
2001-08-22 20:39:23
I use the following code to assigning query result to an array.

while ($row = pg_fetch_row($result)) $newArray[] = $row[0];

2002-07-23 23:38:55
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:


you will get back the SECOND result not the FIRST.
2003-05-23 00:29:53
Get downlines, put them into arrays.

function get_downlines($my_code){
    global $link;

    $sql = "select user_id, name from tb_user where parentcode = $my_code";
    $res = pg_query($link,$sql);
        echo "Error: ".$sql;exit();
    $num_fields = pg_num_fields($res);
    $info_rows = 0;

    $num_rows = pg_num_rows($res);
    while($arr = pg_fetch_row($res)){

           $info_offset  = 1;
         $info_columns  = 0;

        while ($info_offset <= $num_fields) {
                 $info_elements[$info_rows][$info_columns] = $arr[$info_columns];
                 $info_offset++; $info_columns++;
return $info_elements;
2004-10-14 03:03:01
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
2005-04-26 17:51:53
Note, that when you retrieve some PG boolean value, you get 't' or 'f' characters which are not compatible with PHP bool.
2006-06-06 18:18:42
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.
2009-10-06 20:09:31

    Поддержать сайт на родительском проекте КГБ