pg_lo_create
(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)
pg_lo_create — 큰 객체 생성
설명
pg_lo_create(PgSql\Connection $connection
= ?, mixed $object_id
= ?): int
pg_lo_create(mixed $object_id
): int
pg_lo_create()는 큰 개체를 만들고 큰 개체의 OID를 반환합니다. PostgreSQL 액세스 모드 INV_READ
, INV_WRITE
및 INV_ARCHIVE
는 지원되지 않으며 객체는 항상 읽기 및 쓰기 액세스로 생성됩니다. INV_ARCHIVE
가 PostgreSQL 자체에서 제거되었습니다(버전 6.3 이상).
Large Object Interface를 사용하기 위해서는 이를 트랜잭션 블록으로 묶어야 합니다.
접근 제어가 없고 사용하기 번거로운 대형 객체 인터페이스를 사용하는 대신 PostgreSQL의 bytea 유형과 pg_escape_bytea()를 사용해 보십시오.
메모: 이 함수는 pg_locreate()라고 불렸습니다.
매개변수
connection
- PgSql\Connection 인스턴스.
connection
을 지정하지 않으면 기본 연결이 사용됩니다. 기본 연결은 pg_connect() 또는 pg_pconnect()에 의해 만들어진 마지막 연결입니다. object_id
object_id
가 주어지면 함수는 이 id로 큰 개체를 만들려고 시도하고, 그렇지 않으면 서버에서 무료 개체 ID를 할당합니다. 이 매개변수는 PostgreSQL 8.1에 처음 등장한 기능에 의존합니다.
반환 값
대형 개체 OID 또는 실패 시 false
입니다.
변경 로그
버전 | 설명 |
---|---|
8.1.0 | connection 매개변수는 이제 PgSql\Connection 인스턴스를 필요로 합니다. 이전에는 resource가 필요했습니다. |
Examples
예제 #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");
?>