(PHP 5 >= 5.3.0, PHP 7, PHP 8)
SQLite3::openBlob — Abre un flujo de recurso para leer un BLOB
$table,$column,$rowid,$database = "main",$flags = SQLITE3_OPEN_READONLYAbre un flujo de recurso para leer o escribir un BLOB, que sería seleccionado por:
SELECT column FROM database.table WHERE rowid = rowid
Nota: No es posible cambiar el tamaño de un BLOB escribiendo en el flujo. En su lugar, una declaración UPDATE debe ser ejecutada, utilizando, eventualmente, la función zeroblob() de SQLite para definir el tamaño del BLOB deseado.
tableEl nombre de la tabla.
columnEl nombre de la columna.
rowidLa ID de la fila.
databaseEl nombre simbólico de la base de datos.
flags
O bien SQLITE3_OPEN_READONLY o
SQLITE3_OPEN_READWRITE para abrir el flujo
en modo de solo lectura o de lectura y escritura, respectivamente.
Devuelve un recurso de flujo, o false si ocurre un error.
| Versión | Descripción |
|---|---|
| 7.2.0 |
El argumento flags fue añadido, permitiendo
escribir BLOBs; anteriormente solo la lectura era soportada.
|
Ejemplo #1 Ejemplo con 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); // obligatorio, de lo contrario la siguiente línea fallaría
$conn->close();
?>El ejemplo anterior mostrará:
Lorem ipsum
Ejemplo #2 Escribir progresivamente 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();
?>El ejemplo anterior mostrará:
Lorem ipsum Lorem ipsum Lorem ipsum