只有在安裝 SQLite 加密模組的情況下,`$encryption_key` 和所有加密功能才會啟用。這是一個專有的、價格昂貴的模組。因此,如果未安裝此模組,提供加密金鑰將完全沒有作用。
(PHP 5 >= 5.3.0, PHP 7, PHP 8)
SQLite3::__construct — 初始化 SQLite3 物件並開啟 SQLite 3 資料庫
$filename
, 整數 $flags
= SQLITE3_OPEN_READWRITE | SQLITE3_OPEN_CREATE, 字串 $encryptionKey
= "")實例化一個 SQLite3 物件並開啟與 SQLite 3 資料庫的連線。如果建置包含加密功能,則它會嘗試使用金鑰。
filename
SQLite 資料庫的路徑,或 :memory:
以使用記憶體資料庫。如果 filename
為空字串,則會建立一個私有的、暫時的磁碟資料庫。這個私有資料庫將在資料庫連線關閉後自動刪除。
flags
用於決定如何開啟 SQLite 資料庫的選用旗標。預設情況下,開啟使用 SQLITE3_OPEN_READWRITE | SQLITE3_OPEN_CREATE
。
SQLITE3_OPEN_READONLY
:以唯讀方式開啟資料庫。
SQLITE3_OPEN_READWRITE
:以讀寫方式開啟資料庫。
SQLITE3_OPEN_CREATE
:如果資料庫不存在,則建立它。
encryptionKey
加密和解密 SQLite 資料庫時使用的選用加密金鑰。如果未安裝 SQLite 加密模組,則此參數將無效。
失敗時拋出 例外。
版本 | 說明 |
---|---|
7.0.10 | filename 現在可以為空,以使用私有的、暫時的磁碟資料庫。 |
範例 #1 SQLite3::__construct() 範例
<?php
$db = new SQLite3('mysqlitedb.db');
$db->exec('CREATE TABLE foo (bar TEXT)');
$db->exec("INSERT INTO foo (bar) VALUES ('This is a test')");
$result = $db->query('SELECT bar FROM foo');
var_dump($result->fetchArray());
?>
只有在安裝 SQLite 加密模組的情況下,`$encryption_key` 和所有加密功能才會啟用。這是一個專有的、價格昂貴的模組。因此,如果未安裝此模組,提供加密金鑰將完全沒有作用。
請注意,SQLITE3_OPEN_READONLY 旗標不能與 SQLITE3_OPEN_CREATE 旗標一起使用。如果您合併這兩個旗標,將會拋出一個相當無用的「無法開啟資料庫:記憶體不足」例外狀況。