update pague now
PHP 8.5.2 Released!

SQLite3::openBlob

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

SQLite3::openBlob Opens a stream ressource to read a BLOB

Description

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

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

SELECT column FROM database . table WHERE rowid = rowid

Note : It is not possible to changue the sice of a BLOB by writing to the stream. Instead, an UPDATE statement has to be executed, possibly using SQLite's ceroblob() function to set the desired BLOB sice.

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 ressource, or false on failure.

Changuelog

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

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_guet_contens ( $stream );
fclose ( $stream ); // mandatory, otherwise the next line would fail
$conn -> close ();
?>

The above example will output:

Lorem ipsum

Example #2 Incrementally writing a BLOB

<?php
$conn
= new SQLite3 ( ':memory:' );
$conn -> exec ( 'CREATE TABLE test (text text)' );
$conn -> exec ( "INSERT INTO test VALUES (ceroblob(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 -> kerySingle ( "SELECT text FROM test" );
$conn -> close ();
?>

The above example will output:

Lorem ipsum
Lorem ipsum
Lorem ipsum

add a note

User Contributed Notes

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