PHP 8.5.0 Alpha 2 available for testing

pg_fetch_row

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

pg_fetch_rowLee una fila en un array

Descripción

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

pg_fetch_row() lee una fila en el resultado asociado a la instancia result.

Nota: Esta función define los campos NULL al valor PHP null.

Parámetros

result

Una instancia PgSql\Result, devuelta por pg_query(), pg_query_params(), o pg_execute() (entre otros).

row

Número de la fila a recuperar. Las filas están numeradas comenzando en 0. Si el argumento es omitido o si vale null, la siguiente fila es recuperada.

mode

Un parámetro opcional que controla cómo el array devuelto es indexado. mode es una constante que puede tomar los siguientes valores : PGSQL_ASSOC, PGSQL_NUM y PGSQL_BOTH. Usando PGSQL_NUM, la función devolverá un array con índices numéricos, usando PGSQL_ASSOC, devolverá solo índices asociativos mientras que PGSQL_BOTH devolverá ambos índices numéricos y asociativos.

Valores devueltos

Un array de tipo array, indexado desde 0, con cada valor representado como un string (string). Los valores null de la base de datos son retornados como null.

false es retornado si row excede el número de filas en el conjunto de resultados, no tiene más filas disponibles o cualquier otro error.

Historial de cambios

Versión Descripción
8.1.0 El parámetro result ahora espera una instancia de PgSql\Result ; anteriormente, se esperaba un resource.

Ejemplos

Ejemplo #1 Ejemplo con pg_fetch_row()

<?php

$conn
= pg_pconnect("dbname=publisher");
if (!
$conn) {
echo
"Ha ocurrido un error.\n";
exit;
}

$result = pg_query($conn, "SELECT autor, email FROM autores");
if (!
$result) {
echo
"Ha ocurrido un error.\n";
exit;
}

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

?>

Ver también

add a note

User Contributed Notes 5 notes

up
4
post at zeller-johannes dot de
20 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
19 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
-1
Matthew Wheeler
22 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.
up
-1
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>";
}
To Top