2012-08-17 23 views
0

我在Windows XP上的Apache 2.2上運行PHP 5.4.5。兩次:-)我認爲兩臺機器的設置完全相同,但一臺機器正常工作,另一臺機器正常工作,另一臺機器產生錯誤。 (它們都是開發機器 - 一個用於開發,另一個用於開發,另一個用於隔離測試)使用Sqlite的消息'找不到驅動程序'的未捕獲異常'PDOException':mis-configuration?

我已經將擴展php_pdo.dll,php_pdo_sqlite.dll和php_sqlite.dll全部啓用(儘管只有這些, php_pdo_sqlite.dll位於ext目錄中,而pdo_sqlite.dll實際上名爲php_sqlite3.dll - 但我理解這一切都應該如此)。

如果有幫助,這會在施工時失敗。我包裹PDO與類的我自己:有問題的代碼如下所示:

ADO extends PDO { 

    function __construct ($cnString = 'sqlite:..') { 
     parent::__construct ($cnString); 
     $this->setAttribute (PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
    } 
... 

但這並不能解釋發生了什麼,因爲,正如我所說,這工作正常在遊戲機上。

我想我只是失明,看不到明顯的東西:-)任何想法,鄉親?

在此先感謝。

+0

http://www.php.net/manual/en/pdo.getavailabledrivers.php - 你真正看到sqlite的呢?如果沒有,您的問題不在您的代碼中,而是在PHP配置中。 – Shi 2012-08-17 17:40:43

+0

擴展名列在phpinfo中是否已啓用? – 2012-08-17 17:41:49

+0

pdo :: getAvailableDrivers不會返回任何內容。 – 2012-08-17 21:09:37

回答

4

找到了!我是對的 - 很明顯,我正在失明:-)

在Apache的httpd.conf中,標記爲#BEGIN PHP INSTALLER EDITS的部分... PHPIniDir已被註釋掉。不知道爲什麼,與我無關。一定是安裝不當。但是,我已經對它進行了分解,現在應該如此。

不知道爲什麼PHP沒有抱怨沒有ini文件? (錯誤日誌中沒有任何內容)。我想,將來要注意的一點是。

感謝:-)

0

主導的問題,我切換到一個新的PHP版本後出現相同的錯誤消息。 的解決方案是簡單的,但也許張貼在這裏可能還是幫助別人誰在這裏通過谷歌結束了......

我仍然不得不取消轉義在我的php.ini文件中的PDO_MYSQL/pdo_mysqlite擴展(取決於您是否使用MySQL或myslq精簡版的版本) 所以UNESCAPE這些線(拿走)

;extension=php_pdo_mysql.dll 
;extension=php_pdo_sqlite.dll 
相關問題