PHPUnit,致命错误:Class 'mysql '没有找到


PHPUnit, Fatal error: Class 'mysqli' not found

我有一个与这里描述的类似的问题:

一切都如我所愿;我的代码访问数据库并打印输出,无论我是从命令行界面还是从web浏览器运行。相同的结果。如果我在Eclipse中使用PHPUnit运行它,我会得到一个错误:

Multiple annotations found at this line:
    - Fatal error: Class 'mysqli' not found
    - Occurrence of 'connection'

指向以下行:

这段代码打印出'Yes'。

$connection = new 'mysqli(HOST, USER, PASS, DATABASE);
if (extension_loaded('mysqli')) {
    echo "Yes";
}
else {
    echo "No";
}

还有一点需要指出的是,我在上面代码所在的类中使用了自己的名称空间。我的单元测试在全局命名空间中。

我遵循了上面URL中的步骤,但是,唉,无济于事。(

在命令提示符上运行此命令不会出现错误:

php -r "new mysqli();"
谁能帮我理解一下这里的问题?

我不确定您是否已将php.ini文件配置为正确的路径,无论是DLL还是共享对象(.so)文件。如果您使用的是Unix/Linux,请尝试在命令行上运行

$> php -i | grep mysqli

,看看是否有东西正在安装,或者创建一个PHP脚本

<?php phpinfo(); ?>

运行该脚本并检查是否正确加载。如果你确信它真的安装了,试着检查你的php.ini文件是否被正确加载,通过检查你的php.ini的"extension"部分。

在命令行中运行PHPUnit时也要检查,因为在web模式下运行时,php.ini和php.ini的路径可能不同。