(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é, 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 symbolic 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édement seul la lecture était supporté.
|
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