string pg_last_notice(resource connection)
Функция pg_last_notice получает последнее уведомление, отправленное сервером PostgreSQL. Уведомления не аналогичны сообщениям, сгенерированным с помощью операторов NOTIFY.
integer pg_last_oid(resource result)
Функция pg_last_oid (листинг 17.49) возвращает идентификатор объекта (OID) последней строки, вставленной в таблицу, если последним вызовом функции pg_query был оператор INSERT.
OID представляет собой внутренний идентификатор, уникальный для каждой строки базы данных, а не для каждого первичного ключа таблицы. Однако, как показано в листинге 17.49, новую строку можно идентифицировать с помощью OID. В случае ошибки возвращается значение -1.

| Листинг 17.49. Функция pg_last_oid_
<?php
// подключиться к базе данных $Link = pg_connect(" " .
"dbname=freetrade " .
"user=freetrade " .
"password=freetrade"); // вставить в таблицу новую строку $Query = "INSERT INTO fee (name) " .
"VALUES ('Gift Wrap')"; $Result = pg_query($Link, $Query);
if(!$Result)
{
print("Insert failed"); exit();
}
$oid = pg_last_oid($Result); print("Row inserted as OID $oid<br>"); //получить значение первого ключа 
$Query = "SELECT id FROM fee WHERE OID=$oid "; $Result = pg_query($Link, $Query); $Rows = pg_fetch_all($Result); $id = $Rows[0]['id'];
print("Столбцу задано значение идентификатора $id<br>");
?>

boolean pg_lo_close(resource lob)
Функция pg_lo_close предназначена для закрытия больших объектов. Аргумент lob имеет тип resource, возвращаемый pg_lo_open.
integer pg_lo_create(resource connection)
Функция pg_lo_create (листинг 17.51) создает данные типа LOB и возвращает идентификатор объекта OID. В листинге 17.50 представлен SQL-оператор для создания таблицы, предназначенной для хранения изображений. Postgre-SQL создает объект как с доступом для чтения, так и для записи.

| Листинг 17.50. Создание таблицы, предназначенной для хранения изображений
CREATE TABLE image (
name VARCHAR(2 5 5), mime VARCHAR(2 5 5), object_id OID NOT NULL, PRIMARY KEY(name)
);

Листинг 17.51. Использование больших объектов в PostgreSQL

<?php
// подключиться к базе данных $Link = pg_connect(" " .
"dbname=freetrade " .
"user=freetrade " .
"password=freetrade");
/*
** Вставить изображение как большой логический объект
*/
// начало транзакции pg_query($Link, "BEGIN"); // создать большой объект $oid = pg_lo_create($Link);
// создать новую строку в таблице изображений
$Query = "INSERT INTO image (name, mime, object_id) " .
"VALUES ('leonatkinson.png', 'image/png', $oid)"; pg_query($Link, $Query);
// прочитать изображение и записать его в большой объект $image = file_get_contents("leonatkinson.png"); $lob = pg_lo_open($Link, $oid, "w"); pg_lo_write($lob, $image);
pg_lo_close($lob); pg_query($Link, "COMMIT");
/*
** получить изображения
*/
// начать транзакцию pg_query($Link, "BEGIN"); // получить OID и MIME- тип $Query = "SELECT object_id, mime " . "FROM image " .
"WHERE name = 'leonatkinson.png' "; $Result = pg_query($Link, $Query); $oid = pg_fetch_result($Result, 0, 0); $mime = pg_fetch_result($Result, 0, 1); // отправить изображение в браузер $lob = pg_lo_open($Link, $oid, "w"); header("Content-type: $mime"); pg_lo_read_all($lob); pg_lo_close($lob); pg_query($Link, "COMMIT");
?>

boolean pg_lo_export(resource lob, string path, resource connection)
Функция pg_lo_export записывает большой объект по пути, указанному аргументом path. Необязательный аргумент connection по умолчанию указывает на последнее соединение, установленное сценарием.
resource pg_lo_import(resource connection, string path)
Функция pg_lo_import создает большой объект из файла и возвращает большой объект типа resource.