pg_fetch_object

(PHP 3 >= 3.0.1, PHP 4, PHP 5)

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

Описание

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

object pg_fetch_object (resource result [, int row [, string class_name [, array params]]] )

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

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

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

It can optionally instantiate an object of a specific class, and pass parameters to that class's constructor.

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

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

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

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

result

PostgreSQL query result resource, returned by pg_query(), pg_query_params() or pg_execute() (among others).

row

Row number in result to fetch. Rows are numbered from 0 upwards. If omitted, next row is fetched.

result_type

Ignored and deprecated. Defaults to PGSQL_ASSOC.

class_name

The name of the class to instantiate, set the properties of and return. If not specified, a stdClass object is returned.

params

An optional array of parameters to pass to the constructor for class_name objects.

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

An object with one attribute for each field name in the result. Database NULL values are returned as NULL.

FALSE is returned if row exceeds the number of rows in the set, there are no more rows, or on any other error.

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

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

$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 />";
}

echo "<pre>";

$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>";
pg_free_result ($qu);
pg_close ($db_conn);
Пример 2. pg_fetch_object()
$database = "store";

$db_conn = pg_connect("host=localhost port=5432 dbname=$database");
if (!$db_conn) {
  die("Failed connecting to postgres database $database\n");
}

$qu = pg_query($db_conn, "SELECT * FROM books ORDER BY author");

while ($data = pg_fetch_object($qu)) {
  echo $data->author . " (";
  echo $data->year . "): ";
  echo $data->title . "<br />";
}

pg_free_result($qu);
pg_close($db_conn);
Смотри также pg_query(), pg_fetch_array(), pg_fetch_row() и pg_fetch_result().



Смотрите также:
Все функции PostgreSQL
Описание на ru2.php.net
Описание на php.ru