(PHP 5 >= 5.3.0, PHP 7, PHP 8)
SQLite3::openBlob — Ouvre un flux de ressource pour lire un BLOB
$table,$column,$rowid,$database = "main",$flags = SQLITE3_OPEN_READONLYOuvre un flux de ressource pour lire ou écrire un BLOB, qui serait sélectionné par :
SELECT column FROM database.table WHERE rowid = rowid
Note: 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é.
tableLe nom de la table.
columnLe nom de la colonne.
rowidLa ligne ID.
databaseLe 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.
Retourne une ressource de flux, ou false si une erreur survient.
| 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.
|
Exemple #1 Exemple avec SQLite3::openBlob()
<?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();
?>L'exemple ci-dessus va afficher :
Lorem ipsum
Exemple #2 Écrire progressivement un 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();
?>L'exemple ci-dessus va afficher :
Lorem ipsum Lorem ipsum Lorem ipsum