SQLite3::openBlob
BLOB を読み取るためのストリームリソースを開く
説明
public resourcefalse SQLite3::openBlob(
string $table
,
string $column
,
int $rowid
,
string $database
= "main",
int $flags
= SQLITE3_OPEN_READONLY
)
SELECT column
FROM database
.table
WHERE rowid = rowid
注意:
ストリームに書き込むことで、BLOBのサイズを変更することは不可能です。
BLOB のサイズを望んだサイズに設定するには、代わりに UPDATE 文を実行するか、
SQLite の zeroblob() 関数を使ってください。
パラメータ
-
table
-
テーブル名
-
column
-
カラム名
-
rowid
-
行ID
-
database
-
DB のシンボリック名
-
flags
-
SQLITE3_OPEN_READONLY
または
SQLITE3_OPEN_READWRITE
を指定します。
それぞれ、読み取り専用でストリームを開くか、
読み取りと書き込みができるようにストリームを開きます。
戻り値
ストリームリソースを返します。
失敗した場合に false
を返します
例
例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();
?>
例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