我有一些麻煩,打開一個源碼文件文件進行加密或不是一個數據庫 - 源碼
在命令行中我得到這個:
#sqlite3 sms.db
SQLite version 3.6.20
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> select * from message;
Error: file is encrypted or is not a database
的錯誤是不是當我連接,它的當我運行一個查詢
檢查文件讓我這個
# file sms.db
sms.db: SQLite 3.x database
所以它不應該是一個版本錫永的問題 - 就像sqlite3的
打開sqlite2文件在PHP中我有這樣的:
try
{
/*** connect to SQLite database ***/
$db = new PDO("sqlite:path/sms.db");
echo "Handle has been created ...... <br><br>";
}
catch(PDOException $e)
{
echo $e->getMessage();
echo "<br><br>Database -- NOT -- loaded successfully .. ";
die("<br><br>Query Closed !!! $error");
}
$result = $db->query('SELECT * from message') or var_dump($db->errorInfo());
獲取我這個(不連接,但在執行查詢)
array(3) { [0]=> string(5) "HY000" [1]=> int(26) [2]=> string(38) "file is encrypted or is not a database" }
我用一個用於firefox的Sql管理器擴展,我可以在沒有任何問題的情況下打開該文件(並且運行任何沒有任何加密或密碼的查詢)。這對我來說真的很奇怪。我在最後幾個小時搜查了這個,但是我沒有找到任何解決辦法。任何幫助,將不勝感激。
我剛剛在Windows上測試過,我可以打開數據庫。我認爲這個問題與sqlite驅動有關。
在Windows上我有SQLite庫3.7.7.1 在我的CentOS的服務器我有SQLite庫3.6.20
現在的問題是我怎麼更新PHP源碼擴展。我不能更新整個PHP(可能會導致錯誤)
命令像百勝安裝PHP-PDO,百勝安裝PHP5-sqlite3的,不工作
在最後我剛用java打開數據庫。你只需要添加一個jar文件,而不必修改服務器上的任何內容 – user1611597