PostgreSQL 函数
在线手册:中文 英文
PHP手册

pg_lo_import

(PHP 4 >= 4.2.0, PHP 5)

pg_lo_import将文件导入为大型对象

说明

int pg_lo_import ([ resource $connection ], string $pathname )

在 PHP 4.2.0 版本之前,本函数语法不一样,见如下定义:

int pg_lo_import ( string $pathname [, resource $connection ] )

pathname 变量指明了要导入为大型对象的文件名。导入成功则返回新建的大型对象的 oid,如果出错则返回 FALSE

要使用大型对象(lo)接口,需要将其放置在事务块中。

Note: 当启用 安全模式时, PHP 会检查被操作的文件或目录是否与被执行的脚本有相同的 UID(所有者)。

Note:

本函数以前的名字为 pg_loimport()

参见 pg_lo_export()pg_lo_open()

参数

connection

PostgreSQL database connection resource. When connection is not present, the default connection is used. The default connection is the last connection made by pg_connect() or pg_pconnect().

pathname

The full path and file name of the file on the client filesystem from which to read the large object data.

object_id

If an object_id is given the function will try to create a large object with this id, else a free object id is assigned by the server. The parameter was added in PHP 5.3 and relies on functionality that first appeared in PostgreSQL 8.1.

返回值

The OID of the newly created large object, or FALSE on failure.

更新日志

版本 说明
5.3.0

The optional object_id was added.

4.2.0

The syntax of this function changed. It used to be:

int pg_lo_import ( string $pathname [, resource $connection ] )

范例

Example #1 pg_lo_import() example

<?php
   $database 
pg_connect("dbname=jacarta");
   
pg_query($database"begin");
   
$oid pg_lo_import($database'/tmp/lob.dat');
   
pg_query($database"commit");
?>

参见


PostgreSQL 函数
在线手册:中文 英文
PHP手册
PHP手册 - N: 将文件导入为大型对象

用户评论:

vi2 at vi2 dot com (02-Aug-2002 01:54)

its not very clear if pg_lo_import needs to have pg_lo_open called first. Because pg_lo_import handles the process of writign to the file, it seems logical that pg_lo_open does not need to be called. However due to the ugly nature of how postgres handles oid objects, it would be nice to have this documented.

yohgaki at php dot net (19-Jun-2002 02:04)

Due to a bug, OLD API does not available with PHP 4.2.0 and 4.2.1.

PHP 4.2.2 will support OLD API again and will be kept long enough.

New API will be available PHP 4.2.0 to later versions.

yohgaki at php dot net (19-Jun-2002 02:00)

Due to a bug, PHP 4.2.0 and 4.2.1 does not support pg_lo_import() old API. It's fixed in PHP 4.2.2.

BTW, new API will be always available from PHP 4.2.0 to later versions. Older API will be kept long enough, also.

ceco at noxis dot net (15-May-2002 07:08)

it works for me (php-4.2.1)

not like this

int pg_lo_import ( string pathname [, resource connection])

but
int pg_lo_import ( resource connection, string pathname )

don't know the reason