SQLite3::openBlob

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

SQLite3::openBlob — BLOB를 읽기 위해 스트림 리소스를 엽니다.


설명

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

BLOB를 읽거나 쓰기 위해 스트림 리소스를 엽니다. 다음과 같이 선택됩니다.

SELECT column FROM database.table WHERE rowid = rowid

메모 스트림에 기록하여 BLOB의 크기를 변경할 수 없습니다. 대신, 원하는 BLOB 크기를 설정하기 위해 SQLite의 zeroblob() 함수를 사용하여 UPDATE 문을 실행해야 합니다.


매개변수

table
테이블 이름입니다.
column
열 이름입니다.
rowid
행 ID입니다.
database
DB의 상징적인 이름
flags
읽기 전용 또는 읽기 및 쓰기용으로 스트림을 열려면 SQLITE3_OPEN_READONLY 또는 SQLITE3_OPEN_READWRITE입니다.

반환 값

스트림 리소스를 반환하거나 실패 시 false를 반환합니다.


변경 로그

버전 설명
7.2.0 flags 매개변수가 추가되어 BLOB를 쓸 수 있습니다. 이전에는 읽기만 지원되었습니다.

Examples

예제 #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); // mandatory, otherwise the next line would fail
$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