SQLite3::openBlob

Opens a stream resource to read a BLOB

&reftitle.description; public ``resource``false```SQLite3::openBlob` `string` `table` `string` `column` `int` `rowid` `string` `database`"main" `int` `flags` `SQLITE3_OPEN_READONLY`

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

SELECT `column` FROM `database`.`table` WHERE rowid = `rowid`

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.

&reftitle.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.

&reftitle.returnvalues;

Returns a stream resource, &return.falseforfailure;.

&reftitle.changelog;

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

&reftitle.examples;

### `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();
    ?>

&example.outputs;

    Lorem ipsum

### 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();
    ?>

&example.outputs;

    Lorem ipsum
    Lorem ipsum
    Lorem ipsum