2017-04-05 111 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加密模塊的問題。