PHP Conference Japan 2024

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 實例;以前,需要一個 resource

範例

範例 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_open,pg_lo_import 並不是很清楚。因為 pg_lo_import 會處理寫入檔案的程序,因此似乎不需要呼叫 pg_lo_open。然而,由於 postgres 處理 oid 物件的方式相當複雜,如果能將此記錄下來會更好。
yohgaki at php dot net
22 年前
由於一個錯誤,舊的 API 在 PHP 4.2.0 和 4.2.1 中不可用。

PHP 4.2.2 將再次支援舊的 API,並且會保留足夠長的時間。

新的 API 將在 PHP 4.2.0 及更高版本中可用。
yohgaki at php dot net
22 年前
由於一個錯誤,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