SQLite3::openBlob

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SQLite3::openBlobOpens a stream resource to read a BLOB

Beschreibung

public SQLite3::openBlob(
    string $table,
    string $column,
    int $rowid,
    string $database = "main",
    int $flags = SQLITE3_OPEN_READONLY
): resource|false

Opens a stream resource to read or write a BLOB, which would be selected by:

SELECT column FROM database.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.

Parameter-Liste

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.

Rückgabewerte

Returns a stream resource, Bei einem Fehler wird false zurückgegeben..

Changelog

Version Beschreibung
7.2.0 The flags parameter has been added, allowing to write BLOBs; formerly only reading was supported.

Beispiele

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

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top