SQLite3::openBlob
Opens a stream resource to read a BLOB
Description
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
Note:
It is not possible to change the size of a BLOB by writing to the stream.
Instead, an UPDATE statement has to be executed, possibly using SQLite's
zeroblob() function to set the desired BLOB size.
Parameters
-
table
-
The table name.
-
column
-
The column name.
-
rowid
-
The row ID.
-
database
-
The symbolic name of the DB
-
flags
-
Either SQLITE3_OPEN_READONLY
or
SQLITE3_OPEN_READWRITE
to open the stream
for reading only, or for reading and writing, respectively.
Return Values
Returns a stream resource, or false
on failure.
Examples
Example #1 SQLite3::openBlob example
<?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();
?>
The above example will output:
Example #2 Incrementally writing a 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();
?>
The above example will output:
Lorem ipsum
Lorem ipsum
Lorem ipsum