0

我在 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);
    }
...

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

我想我只是失明了,看不到明显的东西 :-) 有什么想法吗,伙计们?

提前致谢。

4

2 回答 2

4

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

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

想知道为什么 PHP 没有抱怨没有 ini 文件吗?(错误日志中没有任何内容)。一个值得关注的未来,我想。

感谢您提出的主要问题:-)

于 2012-08-19T12:17:44.023 回答
0

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

我仍然必须在我的 php.ini 文件中取消 pdo_mysql / pdo_mysqlite 扩展名(取决于您使用的是 mysql 还是 myslq lite 版本)所以取消这些行(去掉;)

;extension=php_pdo_mysql.dll
;extension=php_pdo_sqlite.dll
于 2013-09-25T13:07:15.047 回答