pg_fetch_object

(PHP 3>= 3.0.1, PHP 4 )

pg_fetch_object -- Pega uma linha como um objeto

Descrição

objeto pg_fetch_object ( recurso resultado, int linha [, int tipo_de_resultado])

pg_fetch_object() retorna um objeto com propriedades que correspondem à linha pega. Ele retorna FALSE se não existem mas linhas ou no caso de um erro.

pg_fetch_object() é similar a pg_fetch_array(), com uma diferença - um objeto é retornado, ao invés de uma array. Indiretamente, isto significa que você pode acessar os dados somente através dos nomes de campos, e não por seus deslocamentos (números são nomes inválidos de propriedades).

linha é o número da linha (registro) a ser recuperada. A primeira linha é 0.

No tocante a velocidade, a função é identica a pg_fetch_array(), e quase tão rápida quando pg_fetch_row() (a diferença é insignificante).

Nota: A partir do PHP 4.3.0, tipo_de_resultado é padrão para PGSQL_ASSOC enquanto em outras versões mais antigas o padrão era PGSQL_BOTH. Não há utilidade para a propriedade numérica, já que nomes de propriedades numéricas são inválidas em PHP.

tipo_de_resultado pode ser deletado em versões futuras.

Veja também pg_query(), pg_fetch_array(), pg_fetch_row() e pg_fetch_result().

Exemplo 1. Postgres fetch object

<?php 
$database = "verlag";
$db_conn = pg_connect ("host=localhost port=5432 dbname=$database");
if (!$db_conn): ?>
    <H1>Falha ao conectar com o banco de dados PostgreSQL <?php echo $database ?></H1> <?php
    exit;
endif;

$qu = pg_query ($db_conn, "SELECT * FROM verlag ORDER BY autor");
$row = 0; // postgres precisa de um contador de linha, outros dbs talvez não precisem

while ($data = pg_fetch_object ($qu, $row)) {
    echo $data->autor." (";
    echo $data->jahr ."): ";
    echo $data->titel."<BR>";
    $row++;
}
?>
<PRE>
<?php
$fields[] = Array ("autor", "Autor");
$fields[] = Array ("jahr",  "  Ano");
$fields[] = Array ("titel", " Título");

$row= 0; 
while ($data = pg_fetch_object ($qu, $row)) {
    echo "----------\n";
    reset ($fields);
    while (list (,$item) = each ($fields)):
        echo $item[1].": ".$data->$item[0]."\n";
    endwhile;
    $row++;
}
echo "----------\n"; 
?>
</PRE> 
<?php
pg_free_result ($qu);
pg_close ($db_conn);
?>

Nota: A partir do PHP 4.1.0, linha tornou-se opcional. Ao chamar pg_fetch_object() o contador de linhas interno será acrescentado de 1.