PDO::pgsqlLOBCreateとは? わかりやすく解説

Weblio 辞書 > コンピュータ > PHP関数リファレンス > PDO::pgsqlLOBCreateの意味・解説 

PDO::pgsqlLOBCreate

(PHP 5 >= 5.1.2)
PDO::pgsqlLOBCreate — 新しいラージオブジェクトを作成する

説明

string PDO::pgsqlLOBCreate ( void )
PDO::pgsqlLOBCreate() は、 ラージオブジェクトを作成してその OID を返します。 このオブジェクトに対するデータの読み書きを行う際には、 PDO::pgsqlLOBOpen() を使用してストリームをオープンします。 OID は OID 型のカラムに格納され、ラージオブジェクトを参照するために使用されます。 これにより、行のサイズがどんどん拡大してしまうことを防ぎます。 PDO::pgsqlLOBUnlink() をコールして削除するまで、 ラージオブジェクトはデータベース内に残り続けます。
ラージオブジェクトの大きさは最大 2GB まで拡大できますが、扱い方はめんどうです。 オブジェクトの OID を参照している行をデータベースから削除する際には、 必ず事前に PDO::pgsqlLOBUnlink() がコールされていなければなりません。 さらに、ラージオブジェクトにはアクセス権の設定がありません。 ラージオブジェクトの代替策として、bytea 型のカラムも検討ください。 最近のバージョンの PostgreSQL では bytea 型のカラムに最大 1GB まで保存でき、行サイズを最適化したうえでデータを透過的に扱うことができます。
注意: この関数は、トランザクション内でコールしなければなりません。

パラメータ

PDO::pgsqlLOBCreate() は、パラメータを受け取りません。

返り値

新しく作成されたラージオブジェクトの OID、あるいは失敗した場合に FALSE を返します。

例 1847. PDO::pgsqlLOBCreate() の例
この例では、新しいラージオブジェクトを作成し、 ファイルの内容をそこにコピーします。その後、OID がテーブルに保存されます。
<?php
$db = new PDO('pgsql:dbname=test host=localhost', $user, $pass);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$db->beginTransaction();
$oid = $db->pgsqlLOBCreate();
$stream = $db->pgsqlLOBOpen($oid, 'w');
$local = fopen($filename, 'rb');
stream_copy_to_stream($local, $stream);
$local = null;
$stream = null;
$stmt = $db->prepare("INSERT INTO BLOBS (ident, oid) VALUES (?, ?)");
$stmt->execute(array($some_id, $oid));
$db->commit();
?>


参考

PDO::pgsqlLOBOpen()
PDO::pgsqlLOBUnlink()
pg_lo_create()




英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「PDO::pgsqlLOBCreate」の関連用語

PDO::pgsqlLOBCreateのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



PDO::pgsqlLOBCreateのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
PHP Documentation GroupPHP Documentation Group
Copyright © 1997 - 2024 by the PHP Documentation Group.

©2024 GRAS Group, Inc.RSS