pg_last_oid

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

pg_last_oidВозвращает OID последней добавленной в базу строки

Описание

pg_last_oid(PgSql\Result $result): string|int|false

pg_last_oid() используется для определения OID, соответствующего вставленной в таблицу строке.

Поле OID таблиц баз данных стало необязательным, начиная с версии PostgreSQL 7.2, а с версии 8.1 перестанет добавляться в таблицы по умолчанию. Если поле OID таблицы не задано, используйте функцию pg_result_status() для проверки успешности вставки записей в таблицу.

Чтобы получить значение SERIAL поля после вставки строки в таблицу, используйте функцию PostgreSQL CURRVAL, передав ей имя последовательности, значение которой нужно получить. Чтобы узнать имя последовательности, необходимо использовать функцию pg_get_serial_sequence (PostgreSQL 8.0).

В PostgreSQL 8.1 есть функция LASTVAL, возвращающая значение наиболее часто используемой за сессию последовательности. Так можно избежать необходимость задавать название последовательности, таблицы или колонки.

Замечание:

Прежнее название функции: pg_getlastoid().

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

result

Экземпляр класса PgSql\Result, который возвращают функции pg_query(), pg_query_params() или pg_execute() (среди прочего).

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

Целое число (int) или строка (string), содержащая OID последней вставленной строки на соединении connection, либо false, если произошла ошибка или поле OID недоступно.

Список изменений

Версия Описание
8.1.0 Параметр result теперь ожидает экземпляр класса PgSql\Result; раньше параметр ждал ресурс (resource).

Примеры

Пример #1 Пример использования pg_last_oid()

<?php
// Подключение к базе данных
pg_connect("dbname=mark host=localhost");

// Создание тестовой таблицы
pg_query("CREATE TABLE test (a INTEGER) WITH OIDS");

// Вставка данных в таблицу
$res = pg_query("INSERT INTO test VALUES (1)");

$oid = pg_last_oid($res);
?>

Смотрите также

  • pg_query() - Выполняет запрос
  • pg_result_status() - Возвращает состояние результата запроса