Php/docs/sqlite3.openblob

来自菜鸟教程
跳转至:导航、​搜索

SQLite3::openBlob

(PHP 5 >= 5.3.0, PHP 7)

SQLite3::openBlobOpens a stream resource to read a BLOB


说明

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

Opens a stream resource to read or write a BLOB, which would be selected by:

SELECT column FROM dbname.table WHERE rowid = rowid

Note:

It is not possible to change the size of a BLOB by writing to the stream. Instead, an UPDATE statement has to be executed, possibly using SQLite's zeroblob() function to set the desired BLOB size.

参数

table
The table name.
column
The column name.
rowid
The row ID.
dbname
The symbolic name of the DB
flags
Either SQLITE3_OPEN_READONLY or SQLITE3_OPEN_READWRITE to open the stream for reading only, or for reading and writing, respectively.


返回值

Returns a stream resource, 或者在失败时返回 false.


更新日志

版本 说明
7.2.0 The flags parameter has been added, allowing to

write BLOBs; formerly only reading was supported.


范例

Example #1 SQLite3::openBlob() example

<?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();?>

以上例程会输出:


Lorem ipsum

Example #2 Incrementally writing a 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