PHP Conference Japan 2024

Pdo\Pgsql::lobOpen

(PHP 8 >= 8.4.0)

Pdo\Pgsql::lobOpen開啟現有的大型物件串流

描述

public Pdo\Pgsql::lobOpen(string $oid, string $mode = "rb"): resource|false

Pdo\Pgsql::lobOpen() 開啟一個串流,以存取 oid 所參考的資料。所有常用的檔案系統函式,例如 fread()fwrite()fgets(),都可以用來操作串流的內容。

注意: 此函式,以及所有對大型物件的操作,都必須在交易內呼叫和執行。

參數

oid
大型物件識別碼。
mode
如果 mode 是 r,則開啟串流以供讀取。如果 mode 是 w,則開啟串流以供寫入。

回傳值

成功時傳回串流資源,失敗時傳回 false

錯誤/例外

此函式何時會發出 E_* 級別的錯誤,和/或拋出 Exception

範例

範例 #1 Pdo\Pgsql::lobOpen() 範例

Pdo\Pgsql::lobCreate() 範例之後,此程式碼片段從資料庫擷取大型物件,並將其輸出到瀏覽器。

<?php
$db
= new Pdo\Pgsql('pgsql:dbname=test host=localhost', $user, $pass);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$db->beginTransaction();
$stmt = $db->prepare("SELECT oid FROM BLOBS WHERE ident = ?");
$stmt->execute(array($some_id));
$stmt->bindColumn('oid', $oid, PDO::PARAM_STR);
$stmt->fetch(PDO::FETCH_BOUND);
$stream = $db->pgsqlLOBOpen($oid, 'r');
header("Content-type: application/octet-stream");
fpassthru($stream);
?>

參見

新增註解

使用者貢獻的註解

此頁面沒有使用者貢獻的註解。
To Top