2012-09-10 65 views
0

我的sqlite3的數據庫顯示此錯誤:SQLITE3:顯示錯誤數據庫被鎖定

Array (
    [0] => HY000 
    [1] => 5 
    [2] => "database is locked" 
) 

我已經使用PHP PDO的連接sqllite3 database.I已經從數據庫中成功讀取,但不能更新/插入到數據庫中。它總是顯示以上錯誤。

我已經嘗試了777數據庫的權利,也用它來測試,但得到了相同的結果。

我上面使用$db->beginTransaction();$dbhandle->commit();

現在問題解決的問題是,我已經使用的BeginTransaction更新查詢之前和之後提交執行query.Query返回true每次但在數據庫中沒有影響。有關它的任何想法?

注意:查詢需要很長時間才能顯示錯誤。

+0

你在SO上搜索過嗎?只要看看右側,你會看到很多關於「*數據庫被鎖定*」的問題...... – j0k

+0

@ j0k我已經搜索並應用了建議,但是在我詢問後得到了相同的結果。 – Hkachhia

回答

1

我已經解決了我的問題。

問題在sqlite3數據庫中。我在Ubuntu 10.04上使用了sqlite3 3.6.22,這個sqlite3不支持多線程,所以我測試了sqlite3 3.7.7版本並且使用從http://www.sqlite.org/wal.html讀取的Pragma命令。

+0

在我的情況下,它只是一個在db連接上設置BusyTimeout的情況(請參閱http://uk1.php.net/manual/en/sqlite3.busytimeout.php)並確保文件/目錄權限是正確的阿帕奇。 –

0

確保數據庫文件所在的目錄具有數據庫用戶的寫入權限。在數據庫中寫入時會創建一個臨時文件。

希望它有幫助。