(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)
pg_lo_create — Crea un objeto de gran tamaño de PostgreSQL
pg_lo_create() crea un objeto de gran tamaño
y devuelve su OID. Los modos de acceso de PostgreSQL INV_READ,
INV_WRITE y INV_ARCHIVE no son
soportados: el objeto siempre puede ser creado con
permisos de lectura y escritura. El modo
INV_ARCHIVE
ha sido eliminado de las bases de datos PostgreSQL (versión 6.3 y posteriores).
Para utilizar un objeto de gran tamaño, es necesario hacerlo dentro de una transacción.
En lugar de utilizar la interfaz de objetos de gran tamaño (que no tiene ningún control de acceso y es engorroso de usar), se recomienda utilizar la columna de tipo bytea de PostgreSQL y pg_escape_bytea().
Nota:
Anteriormente, esta función se llamaba pg_locreate().
connection
Una instancia PgSql\Connection.
Cuando connection no es especificado, se usa la conexión por defecto.
La conexión por defecto es la última conexión hecha por
pg_connect() o pg_pconnect()
Desde PHP 8.1.0, usar la conexión por defecto está obsoleto.
object_id
Si se proporciona el argumento object_id, la función
intentará crear un objeto grande con este identificador; de lo contrario, se asignará un identificador
de objeto disponible por el servidor. Este argumento depende de una
funcionalidad que apareció con PostgreSQL 8.1.
Un objeto grande OID, o false si ocurre un error.
| Versión | Descripción |
|---|---|
| 8.1.0 |
El parámetro connection ahora espera una instancia de
PgSql\Connection ; anteriormente, se esperaba un resource.
|
Ejemplo #1 Ejemplo con 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, "datos de objeto de gran tamaño");
pg_lo_close($handle);
pg_query($database, "commit");
?>