關於是否需要先呼叫 pg_lo_open,pg_lo_import 並不是很清楚。因為 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 實例;以前,需要一個 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");
?>
關於是否需要先呼叫 pg_lo_open,pg_lo_import 並不是很清楚。因為 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 )
不知道原因