(PHP 5 >= 5.3.0, PHP 7, PHP 8)
SQLite3::openBlob — BLOB を読み取るためのストリームリソースを開く
$table,$column,$rowid,$database = "main",$flags = SQLITE3_OPEN_READONLYBLOB を読み書きするためのストリームリソースを開きます。 これは、以下によって選択されます:
   SELECT column FROM database.table WHERE rowid = rowid
  
注意: ストリームに書き込むことで、BLOBのサイズを変更することは不可能です。 BLOB のサイズを望んだサイズに設定するには、代わりに UPDATE 文を実行するか、 SQLite の zeroblob() 関数を使ってください。
tableテーブル名
columnカラム名
rowid行ID
databaseDB のシンボリック名
flags
       SQLITE3_OPEN_READONLY または
       SQLITE3_OPEN_READWRITE を指定します。
       それぞれ、読み取り専用でストリームを開くか、
       読み取りと書き込みができるようにストリームを開きます。
      
   ストリームリソースを返します。
   失敗した場合に false を返します
  
| バージョン | 説明 | 
|---|---|
| 7.2.0 | flagsが追加されました。
       BLOB に書き込むことができます。これより前のバージョンでは、読み取りのみがサポートされていました。 | 
例1 SQLite3::openBlob() の例
<?php
$conn = new SQLite3(':memory:');
$conn->exec('CREATE TABLE test (text text)');
$conn->exec("INSERT INTO test VALUES ('Lorem ipsum')");
$stream = $conn->openBlob('test', 'text', 1);
echo stream_get_contents($stream);
fclose($stream); // mandatory, otherwise the next line would fail
$conn->close();
?>上の例の出力は以下となります。
Lorem ipsum
例2 インクリメンタルにBLOBに書き込む
<?php
$conn = new SQLite3(':memory:');
$conn->exec('CREATE TABLE test (text text)');
$conn->exec("INSERT INTO test VALUES (zeroblob(36))");
$stream = $conn->openBlob('test', 'text', 1, 'main', SQLITE3_OPEN_READWRITE);
for ($i = 0; $i < 3; $i++) {
    fwrite($stream,  "Lorem ipsum\n");
}
fclose($stream);
echo $conn->querySingle("SELECT text FROM test");
$conn->close();
?>上の例の出力は以下となります。
Lorem ipsum Lorem ipsum Lorem ipsum
