首页 > 解决方案 > 当我尝试使用错误的加密密钥打开文件时,为什么 SQLite 没有给我一个错误?

问题描述

我无法在线找到有关此行为的任何信息,因此我们将不胜感激。

使用以下代码时:

//create file with encryption key "test1"
$tempDB = new \SQLite3("temp.db", SQLITE3_OPEN_READWRITE | SQLITE3_OPEN_CREATE, "test1");

//attempt to open the same file using key "test2"
$tempDB = new \SQLite3("temp.db", SQLITE3_OPEN_READWRITE, "test2"); 

var_dump($tempDB->lastErrorCode()); //int(0)  : no error?

这是预期的行为吗?如果是这样,我如何检查给定 SQLite3 文件的密钥是否正确?

标签: phpsqlite

解决方案


是的,我是个白痴。浏览完手册后,我认为加密是 PHP+SQLite 附带的一个模块,或者您可以轻松安装和使用它。

事实并非如此。您必须支付 2000 美元才能使用此模块。啊。

我的代码只是忽略了这个参数

加密和解密 SQLite 数据库时使用的可选加密密钥。如果没有安装 SQLite 加密模块,该参数将不起作用。


推荐阅读