SQLite3::openBlob

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SQLite3::openBlobAbre un flujo de recurso para leer un BLOB

Descripción

public SQLite3::openBlob(
    string $table,
    string $column,
    int $rowid,
    string $database = "main",
    int $flags = SQLITE3_OPEN_READONLY
): resource|false

Abre 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.

Parámetros

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.

Valores devueltos

Devuelve un recurso de flujo, o false en caso de error.

Historial de cambios

Versión Descripción
7.2.0 El argumento flags fue añadido, permitiendo escribir BLOBs; anteriormente solo la lectura era soportada.

Ejemplos

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 resultado del ejemplo sería:

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 resultado del ejemplo sería:

Lorem ipsum
Lorem ipsum
Lorem ipsum

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top