$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 数据库的连接。如果构建包含加密,则它将尝试使用密钥。
filename
SQLite 数据库的路径,或 :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());
?>
$encryption_key 和所有加密功能只有在安装了 SQLite 加密模块时才会启用。这是一个专有的、昂贵的模块。因此,如果它不存在,提供加密密钥将绝对没有任何效果。
请注意,SQLITE3_OPEN_READONLY 标志不能与 SQLITE3_OPEN_CREATE 标志组合使用。如果将这两个标志组合在一起,将会抛出不太有帮助的“无法打开数据库:内存不足”异常。