使用Sqlite的消息'找不到驱动程序'的未捕获异常'PDOException':mis-configuration?

问题描述:

我在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

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

在Apache的httpd.conf中,标记为#BEGIN PHP INSTALLER EDITS的部分... PHPIniDir已被注释掉。不知道为什么,与我无关。一定是安装不当。但是,我已经对它进行了分解,现在应该如此。

不知道为什么PHP没有抱怨没有ini文件? (错误日志中没有任何内容)。我想,将来要注意的一点是。

感谢:-)

主导的问题,我切换到一个新的PHP版本后出现相同的错误消息。 的解决方案是简单的,但也许张贴在这里可能还是帮助别人谁在这里通过谷歌结束了......

我仍然不得不取消转义在我的php.ini文件中的PDO_MYSQL/pdo_mysqlite扩展(取决于您是否使用MySQL或myslq精简版的版本) 所以UNESCAPE这些线(拿走)

;extension=php_pdo_mysql.dll 
;extension=php_pdo_sqlite.dll