2017-04-05 136 views
1

我想使用PDO(PHP 7.1.1)打开加密的sqlite3数据库。sqlite3 PDO错误

$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数据库?

+0

可能重复的[SQLite3数据库加密 - 确定加密库?](http://stackoverflow.com/questions/9514007/sqlite3-database-encryption-determining-encryption-library) – Augwa

回答

0

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

每文档:

encryption_key - 加密和解密的SQLite数据库时,使用可选的加密密钥。 如果未安装SQLite加密模块,则此参数将不起作用

正如在您的问题的评论中提到的,还有其他解决方案可以解决安装和获取使用PHP的sqlite加密模块的问题。