【问题标题】:sqlite3 PDO errorsqlite3 PDO 错误
【发布时间】:2017-04-06 05:29:32
【问题描述】:

我正在尝试使用 PDO (PHP 7.1.1) 打开一个加密的 sqlite3 数据库。

$db = new PDO('sqlite:mydb.sqlite','','password');
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$results = $db->query('SELECT * from Table');

以上代码抛出以下异常:

Uncaught PDOException: SQLSTATE[HY000]: General error: 26 file is encrypted or is not a database

我的连接字符串正确吗? 是否可以使用 PDO 打开加密的 sqlite3 数据库?

【问题讨论】:

标签: php pdo sqlite


【解决方案1】:

PDO SQLite interface 的文档没有提及加密,PDO class 的文档也没有提及。我唯一知道的是SQLite3 class,它在the constructor 中有一个加密密钥参数。

根据文档:

encryption_key - 加密和解密 SQLite 数据库时使用的可选加密密钥。 如果没有安装 SQLite 加密模块,此参数无效

正如您问题的 cmets 中所述,还有其他答案可以解决安装和获取使用 PHP 的 sqlite 加密模块的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-05-02
    • 2012-11-12
    • 2012-07-24
    • 2012-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多