Учебник РНР
НазадВперёд

pg_fetch_object

(PHP 3>= 3.0.1, PHP 4)

pg_fetch_object - извлекает ряд как объект.

Описание

object pg_fetch_object (resource result, int row [, int result_type])

pg_fetch_object() возвращает объект со свойствами, соответствующий извлечённому ряду. Возвращает FALSE, если рядов больше нет или имеется ошибка.

pg_fetch_object() аналогична pg_fetch_array(), с тем только отличием, что возвращается объект, а не массив. Неявно это означает, что вы можете получить доступ к данным только по именам полей, а не по их смещениям (числа являются недопустимыми именами свойств).

row это количество запрашиваемых рядов (записей). Первый ряд 0.

По скорости работы эта функция идентична pg_fetch_array() и почти так же быстра, как pg_fetch_row() (разница незначительна).

Примечание: начиная с 4.3.0, result_type по умолчанию равен PGSQL_ASSOC, а в более старых версиях - PGSQL_BOTH. Числовое свойство не используется, поскольку числовое имя свойства недопустимо в PHP.

result_type может быть удалён в последующих версиях.

См. также pg_query(), pg_fetch_array(), pg_fetch_row() и pg_fetch_result().

Пример 1. Извлечение объекта в Postgres
<?php 
$database = "verlag";
$db_conn = pg_connect ("host=localhost port=5432 dbname=$database");
if (!$db_conn): ?>
    <H1>Failed connecting to postgres database <?php echo $database ?></H1> <?php
    exit;
endif;

$qu = pg_query ($db_conn, "SELECT * FROM verlag ORDER BY autor");
$row = 0; // в postgres необходим счётчик рядов, другие dbs могут и не требовать

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

$row= 0; // в postgres необходим счётчик рядов, другие dbs могут и не требовать
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);
?>

Примечание: начиная с 4.1.0, row стал необязательным параметром. Вызов pg_fetch_object() увеличивает внутренний счётчик рядов на 1.


Назад Оглавление Вперёд
pg_fetch_array Вверхpg_fetch_result