(PHP 5 >= 5.3.0, PHP 7)
SQLite3::openBlob — Opens a stream resource to read a BLOB
$table
, string $column
, int $rowid
[, string $dbname
= "main"
[, int $flags
= SQLITE3_OPEN_READONLY
]] ) : resourceOpens a stream resource to read or write a BLOB, which would be selected by:
SELECT column
FROM dbname
.table
WHERE rowid = rowid
Hinweis: 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.
table
The table name.
column
The column name.
rowid
The row ID.
dbname
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.
Returns a stream resource, Im Fehlerfall wird FALSE
zurückgegeben..
Version | Beschreibung |
---|---|
7.2.0 |
The flags parameter has been added, allowing to
write BLOBs; formerly only reading was supported.
|
Beispiel #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();
?>
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
Lorem ipsum
Beispiel #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();
?>
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
Lorem ipsum Lorem ipsum Lorem ipsum