带有消息的未捕获异常'PDOException'使用Sqlite找不到驱动程序:错误配置?

时间:2012-08-17 17:37:08

标签: php sqlite pdo driver

我在Windows XP上的Apache 2.2上运行PHP 5.4.5。两次:-)我认为两台机器都是相同的,但是一台机器工作正常而另一台机器产生错误。 (它们都是开发机器 - 一个用于开发,另一个用于隔离测试仪)

我已经启用扩展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);
    }
...

但这并没有解释发生了什么,因为正如我所说,这在游戏机上运行良好。

我想我只是盲目而且看不到明显的东西:-)任何想法,伙计们?

提前致谢。

2 个答案:

答案 0 :(得分:4)

发现它!我是对的 - 很明显,我会失明: - )

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

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

感谢领先的问题: - )

答案 1 :(得分:0)

切换到新的PHP版本后,我收到了同样的错误消息。 解决方案很简单,但也许在这里发布它可能仍然可以帮助那些通过Google结束的人......

我仍然不得不在我的php.ini文件中取消pdo_mysql / pdo_mysqlite扩展名(取决于你使用的是mysql还是myslq lite版本) 所以unescape这些线(带走;)

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