(PHP 5 >= 5.3.0, PHP 7, PHP 8)
SQLite3::openBlob — Opens a stream ressource to read a BLOB
$table
,
$column
,
$rowid
,
$database
= "main"
,
$flags
=
SQLITE3_OPEN_READONLY
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.
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.
Returns a stream ressource, or
false
on failure.
| Versionen | Description |
|---|---|
| 7.2.0 |
The
flags
parameter has been added, allowing to
write BLOBs; formerly only reading was supported.
|
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