$encryption_key 和所有加密功能仅在安装 SQLite 加密模块后才启用。这是一个专有的、昂贵的模块。因此,如果它不存在,提供加密密钥将完全无效。(PHP 5 >= 5.3.0, PHP 7, PHP 8)
SQLite3::__construct — 实例化一个 SQLite3 对象并打开一个 SQLite 3 数据库
$filename, int $flags = SQLITE3_OPEN_READWRITE | SQLITE3_OPEN_CREATE, string $encryptionKey = "")实例化一个 SQLite3 对象并打开到 SQLite 3 数据库的连接。如果构建包含加密,则它将尝试使用密钥。
filenameSQLite 数据库的路径,或 :memory: 用于使用内存数据库。如果 filename 是空字符串,则将创建一个私有的、临时的磁盘数据库。此私有数据库将在数据库连接关闭后立即自动删除。
flags用于确定如何打开 SQLite 数据库的可选标志。默认情况下,打开使用 SQLITE3_OPEN_READWRITE | SQLITE3_OPEN_CREATE。
SQLITE3_OPEN_READONLY: 只读打开数据库。
SQLITE3_OPEN_READWRITE: 读写打开数据库。
SQLITE3_OPEN_CREATE: 如果数据库不存在则创建它。
encryptionKey加密和解密 SQLite 数据库时使用的可选加密密钥。如果未安装 SQLite 加密模块,则此参数无效。
失败时抛出 Exception 异常。
| 版本 | 描述 |
|---|---|
| 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());
?>请注意,SQLITE3_OPEN_READONLY 标志不能与 SQLITE3_OPEN_CREATE 标志组合使用。如果您同时使用这两个标志,则会抛出一个相当无用的“无法打开数据库:内存不足”异常。