array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'ru', ), 'this' => array ( 0 => 'function.pg-lo-create.php', 1 => 'pg_lo_create', ), 'up' => array ( 0 => 'ref.pgsql.php', 1 => 'Функции PostgreSQL', ), 'prev' => array ( 0 => 'function.pg-lo-close.php', 1 => 'pg_lo_close', ), 'next' => array ( 0 => 'function.pg-lo-export.php', 1 => 'pg_lo_export', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'ru', 'path' => 'reference/pgsql/functions/pg-lo-create.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)
pg_lo_create — Создаёт большой объект
pg_lo_create() создаёт большой объект
и возвращает его OID. Режимы доступа
PostgreSQL INV_READ
, INV_WRITE
,
и INV_ARCHIVE
не поддерживаются, объект всегда
создаётся с доступом на чтение и запись. Режим INV_ARCHIVE
убран из PostgreSQL версий 6.3 и выше.
Операции с использованием интерфейса больших объектов необходимо заключать в блок транзакции.
Вместо использования интерфейса больших объектов (который не имеет контроля доступа и весьма громоздкий сам по себе) пользуйтесь полями PostgreSQL типа bytea для хранения двоичных данных и функцией pg_escape_bytea() для их экранирования.
Замечание:
Прежнее название функции: pg_locreate().
connection
Экземпляр
класса PgSql\Connection.
Если параметр connection
не указали, функция выберет соединение по умолчанию.
Соединение по умолчанию — это последнее соединение, которое установила функция pg_connect()
или pg_pconnect().
Начиная с версии PHP 8.1.0 использование соединения по умолчанию устарело.
object_id
Если задан аргумент object_id
, функция
попытается создать объект с этим идентификатором, в противном
случае будет использован свободный идентификатор, назначенный
сервером. Этот аргумент основан на функционале,
впервые реализованном в PostgreSQL 8.1.
OID большого объекта или false
, если возникла ошибка.
Версия | Описание |
---|---|
8.1.0 |
Параметр connection теперь ожидает экземпляр
класса PgSql\Connection; раньше параметр ждал ресурс (resource).
|
Пример #1 Пример использования pg_lo_create()
<?php
$database = pg_connect("dbname=jacarta");
pg_query($database, "begin");
$oid = pg_lo_create($database);
echo "$oid\n";
$handle = pg_lo_open($database, $oid, "w");
echo "$handle\n";
pg_lo_write($handle, "large object data");
pg_lo_close($handle);
pg_query($database, "commit");
?>