Just for the record, a user must be a superuser (database owner) in order to invoke pg_lo_open() (though pg_lo_create() may be invoked...). This opens a gigantic security hole in the db. If a user is not a superuser, db will raise an error with message "Can't create Large Object.".
Thus, imho, one should use pg_escape_bytea() instead.pg_lo_open
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
pg_lo_open
Референца за `function.pg-lo-open.php` со подобрена типографија и навигација.
pg_lo_open
(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)
pg_lo_open — Отвори голем објект
= NULL
pg_lo_open() отвора голем објект во базата на податоци и враќа PgSql\Lob инстанца за да може да се манипулира.
Не ја затворајте врската со базата на податоци пред да го затворите PgSql\Lob instance.
За да се користи интерфејсот за големи објекти, неопходно е да се затвори во блок за трансакција.
Забелешка:
Оваа функција порано се нарекуваше pg_loopen().
Параметри
connection-
Еден PgSql\Connection инстанца. Кога
connectionне е наведено, се користи стандардната врска. Стандардната врска е последната врска направена од pg_connect() or pg_pconnect().Ги ескејпува специјалните знаци во стринг за употреба во SQL изјаваОд PHP 8.1.0, користењето на стандардната врска е застарено.
oid-
На OID на големиот објект во базата на податоци.
mode-
Може да биде „r“ само за читање, „w“ само за пишување или „rw“ за читање и пишување.
Дневник на промени
| Верзија | = NULL |
|---|---|
| 8.1.0 | Враќа PgSql\Lob инстанца сега; претходно, а resource . |
| 8.1.0 |
На connection параметарот очекува PgSql\Connection
инстанца сега; претходно, а resource се очекуваше.
|
Примери
Пример #1 pg_lo_open() example
<?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");
?>Белешки од корисници 2 забелешки
If I've just tested the functions pg_lo_write(),pg_lo_create() and pg_lo_open() with PHP8.0 to PHP8.4 , there is no need to be a superuser to write a large object.