• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • SQLite3::openBlob()

    (PHP 5 >= 5.3.0, PHP 7)

    Opens a stream resource to read a BLOB

    说明

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

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

    SELECT$columnFROM$dbname.$tableWHERE 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$flagsparameter has been added, allowing to write BLOBs; formerly only reading was supported.

    范例

    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
    

    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