SQLite3::openBlob
Abre un flujo de recurso para leer un BLOB
&reftitle.description;
public resourcefalseSQLite3::openBlob
stringtable
stringcolumn
introwid
stringdatabase"main"
intflagsSQLITE3_OPEN_READONLY
Abre un flujo de recurso para leer o escribir un BLOB, que sería seleccionado por:
SELECT column FROM database.table WHERE rowid = rowid
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.
&reftitle.parameters;
table
El nombre de la tabla.
column
El nombre de la columna.
rowid
La ID de la fila.
database
El 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.
&reftitle.returnvalues;
Devuelve un recurso de flujo, &return.falseforfailure;.
&reftitle.changelog;
&Version;
&Description;
7.2.0
El argumento flags fue añadido, permitiendo
escribir BLOBs; anteriormente solo la lectura era soportada.
&reftitle.examples;
Ejemplo con 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); // obligatorio, de lo contrario la siguiente línea fallaría
$conn->close();
?>
]]>
&example.outputs;
Escribir progresivamente 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;