2010-03-11 120 views
20

試圖學習一些關於PDO的內容,並且正在通過this tutorial。它有下面的代碼片段:PDO:無法在內存中創建SQLite數據庫

<?php 

try 
{ 
    $db = new PDO('sqlite::memory'); 
    echo "SQLite created in memory."; 

} 
catch(PDOException $e) 
{ 
    echo $e->getMessage(); 
} 

當我運行此我得到下面的異常消息:

SQLSTATE [HY000] [14]無法打開數據庫文件

那是什麼意思?我怎樣才能使它工作?我能夠連接到MySQL數據庫和常規的SQLite數據庫文件。所以我知道至少有一些工作...

我在Windows 7 64位與Apache 2.2.11和PHP 5.3.0(最新WampServer安裝)。 phpinfo()報告說我啓用了SQLite Library 3.6.15的pdo_sqlite。

回答

41

你必須寫

$db = new PDO('sqlite::memory:'); 

:丟失。


的PDO_SQLITE數據源名稱(DSN)由以下元素組成:

的DSN前綴是源碼:

  • 要訪問磁盤上的數據庫,請將絕對路徑附加到DSN前綴。

  • 要在內存中創建數據庫,請將:內存:添加到DSN前綴中。

Documentation

+0

不可信......哈哈。感謝:D – Svish 2010-03-11 15:32:56

2

不確定@ win權限,但在* nix上,SQLite需要向臨時文件的dir限定數據庫文件寫入權限。

+0

還不錯就知道了! – Svish 2010-03-11 15:33:13