不清楚 pg_lo_import 是否需要先调用 pg_lo_open。由于 pg_lo_import 处理写入文件的过程,因此似乎 pg_lo_open 不需要被调用。但是,由于 postgres 处理 oid 对象的方式很丑陋,因此最好对其进行文档说明。
(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)
pg_lo_import — 从文件导入大型对象
pg_lo_import() 使用文件系统上的文件作为数据源,在数据库中创建新的大型对象。
要使用大型对象接口,必须将其包含在事务块中。
注意:
此函数以前称为 pg_loimport().
connection
一个 PgSql\Connection 实例。当 connection
未指定时,将使用默认连接。默认连接是 pg_connect() 或 pg_pconnect() 最后建立的连接。
从 PHP 8.1.0 开始,使用默认连接已弃用。
pathname
客户端文件系统上要从中读取大型对象数据的完整路径和文件名。
object_id
如果给出了 object_id
,则该函数将尝试使用此 ID 创建大型对象,否则服务器将分配一个空闲对象 ID。该参数依赖于首先出现在 PostgreSQL 8.1 中的功能。
新创建的大型对象的 OID,或在失败时为 false
。
版本 | 说明 |
---|---|
8.1.0 | 现在 connection 参数需要一个 PgSql\Connection 实例;以前需要一个 资源。 |
示例 #1 pg_lo_import() 示例
<?php
$database = pg_connect("dbname=jacarta");
pg_query($database, "begin");
$oid = pg_lo_import($database, '/tmp/lob.dat');
pg_query($database, "commit");
?>
不清楚 pg_lo_import 是否需要先调用 pg_lo_open。由于 pg_lo_import 处理写入文件的过程,因此似乎 pg_lo_open 不需要被调用。但是,由于 postgres 处理 oid 对象的方式很丑陋,因此最好对其进行文档说明。
由于错误,旧版 API 在 PHP 4.2.0 和 4.2.1 中不可用。
PHP 4.2.2 将再次支持旧版 API,并将保留足够长的时间。
新版 API 将在 PHP 4.2.0 到更高版本中可用。
由于错误,PHP 4.2.0 和 4.2.1 不支持 pg_lo_import() 旧版 API。它在 PHP 4.2.2 中已修复。
顺便说一句,新版 API 将始终在 PHP 4.2.0 到更高版本中可用。旧版 API 也将保留足够长的时间。
它对我有用(php-4.2.1)
不像这样
int pg_lo_import ( string pathname [, resource connection])
但是
int pg_lo_import ( resource connection, string pathname )
不知道原因