SQLite3::openBlob

(PHP 5 >= 5.3.0, PHP 7)

SQLite3::openBlobОткрывает ресурс потока для чтения BLOB

Описание

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

Открывает ресурс потока для чтения или записи BLOB, который будет выбран:

SELECT column FROM dbname.table WHERE rowid = rowid

Замечание: Невозможно изменить размер BLOB путем записи в поток. Вместо этого необходимо выполнить запрос UPDATE, возможно, используя SQLite-функцию zeroblob(), чтобы задать желаемый размер BLOB.

Список параметров

table

Название таблицы.

column

Название столбца.

rowid

Идентификатор строки.

dbname

Символическое название базы данных

flags

Либо SQLITE3_OPEN_READONLY, либо SQLITE3_OPEN_READWRITE, чтобы открыть поток только для чтения или для чтения и записи, соответственно.

Возвращаемые значения

Возвращает ресурс потока, или false в случае возникновения ошибки.

Список изменений

Версия Описание
7.2.0 Добавлен параметр flags, позволяющий записать BLOB; ранее поддерживалось только чтение.

Примеры

Пример #1 Пример использования 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); // обязательно, иначе на следующей строке произойдет ошибка
$conn->close();
?>

Результат выполнения данного примера:

Lorem ipsum

Пример #2 Пошаговая запись 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();
?>

Результат выполнения данного примера:

Lorem ipsum
Lorem ipsum
Lorem ipsum