SQLite3::openBlob
Ouvre un flux de ressource pour lire un BLOB
&reftitle.description;
public resourcefalseSQLite3::openBlob
stringtable
stringcolumn
introwid
stringdatabase"main"
intflagsSQLITE3_OPEN_READONLY
Ouvre un flux de ressource pour lire ou écrire un BLOB, qui serait sélectionné par :
SELECT column FROM database.table WHERE rowid = rowid
Il n'est pas possible de changer la taille d'un BLOB en écrivant vers le flux.
À la place, une déclaration UPDATE doit être exécutée, en utilisant, éventuellement
la fonction zeroblob() de SQLite pour définir la taille du BLOB désiré.
&reftitle.parameters;
table
Le nom de la table.
column
Le nom de la colonne.
rowid
La ligne ID.
database
Le nom symbolique de la base de données.
flags
Soit SQLITE3_OPEN_READONLY ou
SQLITE3_OPEN_READWRITE pour ouvrir le flux
en lecture seule, ou en lecture et écriture, respectivement.
&reftitle.returnvalues;
Retourne une ressource de flux, &return.falseforfailure;.
&reftitle.changelog;
&Version;
&Description;
7.2.0
Le paramètre flags a été ajouté, permettant
d'écrire des BLOBs ; précédemment seule la lecture était supportée.
&reftitle.examples;
Exemple avec SQLite3::openBlob
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;
Écrire progressivement un BLOB
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;