2011-06-29 27 views
0

我試圖讓首次使用SQLite的,現在我已經使用這個:
問題與開放源碼數據庫文件

$this->linkIdentifier = new SQLiteDatabase($database); 


,它創建了一個數據庫只是罰款website.sqlite再次打開它不會給任何問題,但只要我使用http://code.google.com/p/phpliteadmin/創建表格,然後嘗試再次打開,它會給我這個錯誤:文件已加密或不是數據庫

什麼可能導致此問題?

+0

權限問題也許?在使用phpliteadmin之前檢查權限是否相同。此外,如果這是一個本地環境,我推薦Air應用程序[Lita](http://www.dehats.com/drupal/?q=node/58)。我從來不是網頁界面的粉絲:-) – prodigitalson

回答

0

我建議使用PHP自己的SQLite3 functions來創建和保存數據庫。確保設置SQLITE3_OPEN_CREATE標誌。

+0

現在就試試看,但是您對SQLITE3_OPEN_CREATE標誌意味着什麼? – Xyro

+0

'SQLite3 :: __ construct(string $ filename [,int $ flags [,string $ encryption_key]])' - flags參數需要包含'SQLITE3_OPEN_CREATE'。我只看到:「默認情況下,打開使用SQLITE3_OPEN_READWRITE | SQLITE3_OPEN_CREATE。」,這對你很好。 – cweiske

1

只是澄清:有SQLite數據庫文件的版本2和版本3.使用「新的SQLiteDatabase()」,您創建版本2的數據庫文件。「新SQLite3()」創建一個文件版本3. 如果安裝了適當的php擴展,PhpLiteAdmin支持兩種版本。 PhpLiteAdmin會告訴您在「SQLite擴展」下打開數據庫的「結構」選項卡時使用的擴展名。如果你打開一個版本2數據庫,它應該在那裏說「SQLiteDatabase」。如果不是,例如由於未安裝此擴展,因此您可能無法在phpLiteAdmin中編輯版本2數據庫。 SQLiteDatabase擴展可能不包含在最新版本的PHP中,例如在PHP 5.4中,它只能通過PECL使用。

+0

首先我發現了一個解釋,即sqlite數據庫可以具有不兼容的不同版本。有道理,爲什麼我使用全新的PHP安裝程序嘗試的所有內容都無法打開我的版本2數據庫。 – Ally