PHP Conference Nagoya 2025

pg_fetch_row

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

pg_fetch_rowObtém uma linha como um array enumerado

Descrição

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

pg_fetch_row() busca uma linha de dados do resultado associado à instância result especificada.

Nota: Esta função define campos NULL como o valor null do PHP.

Parâmetros

result

Uma instância de PgSql\Result, retornada por pg_query(), pg_query_params() ou pg_execute() (entre outras).

row

Número da linha no resultado a ser buscado. As linhas são numeradas de 0 para cima. Se omitido ou null, a próxima linha será buscada.

mode

Um parâmetro opcional que controla como o array retornado será indexado. mode é uma constante e pode assumir os seguintes valores: PGSQL_ASSOC, PGSQL_NUM e PGSQL_BOTH. Usando PGSQL_NUM, a função retornará um array com índices numéricos, usando PGSQL_ASSOC ela retornará apenas índices associativos enquanto PGSQL_BOTH retornará índices numéricos e associativos.

Valor Retornado

Um array, indexado de 0 para cima, com cada valor representado como uma string. Os valores NULL do banco de dados são retornados como null.

false é retornado se row exceder o número de linhas no conjunto, não houver mais linhas ou em qualquer outro erro.

Registro de Alterações

Versão Descrição
8.1.0 O parâmetro result agora espera uma instância de PgSql\Result; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 Exemplo de pg_fetch_row()

<?php

$conn
= pg_pconnect("dbname=publisher");
if (!
$conn) {
echo
"Ocorreu um erro.\n";
exit;
}

$result = pg_query($conn, "SELECT author, email FROM authors");
if (!
$result) {
echo
"Ocorreu um erro.\n";
exit;
}

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

?>

Veja Também

adicione uma nota

Notas Enviadas por Usuários (em inglês) 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