2024 年 PHP 大会日本站

pg_lo_import

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

pg_lo_import从文件导入大对象

描述

pg_lo_import(PgSql\Connection $connection = ?, string $pathname, mixed $object_id = ?): int

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");
?>

参见

添加注释

用户贡献的注释 4 条注释

vi2 at vi2 dot com
22 年前
目前还不清楚 pg_lo_import 是否需要先调用 pg_lo_open。由于 pg_lo_import 处理写入文件的过程,因此似乎不需要调用 pg_lo_open。但是,由于 PostgreSQL 处理 oid 对象的方式比较笨拙,因此最好能对此进行说明。
yohgaki at php dot net
22 年前
由于一个 bug,旧版 API 在 PHP 4.2.0 和 4.2.1 中不可用。

PHP 4.2.2 将再次支持旧版 API,并将保留足够长的时间。

新版 API 将在 PHP 4.2.0 及更高版本中可用。
yohgaki at php dot net
22 年前
由于一个 bug,PHP 4.2.0 和 4.2.1 不支持 pg_lo_import() 旧版 API。此问题已在 PHP 4.2.2 中修复。

顺便说一句,新版 API 将始终从 PHP 4.2.0 到更高版本可用。旧版 API 也将保留足够长的时间。
ceco at noxis dot net
22 年前
它对我有用 (php-4.2.1)

不是这样的

int pg_lo_import ( string pathname [, resource connection])

而是
int pg_lo_import ( resource connection, string pathname )

不知道原因
To Top