3

我有一个与此处描述的问题类似的问题:

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

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

指向以下行:

此代码打印出“是”。

$connection = new \mysqli(HOST, USER, PASS, DATABASE);

if (extension_loaded('mysqli')) {
    echo "Yes";
}
else {
    echo "No";
}

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

我已经按照上面 URL 中的步骤进行操作,但是,唉,无济于事。:(

在命令提示符下运行它没有错误:

php -r "new mysqli();"

请有人帮我理解这里的问题吗?

4

1 回答 1

0

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

$> php -i | grep mysqli

看看它是否说正在安装某些东西,或者创建一个 PHP 脚本

<?php phpinfo(); ?>

运行该脚本并检查它是否正确加载。如果您确信它确实已安装,请尝试通过检查 php.ini 的“扩展”部分来检查您的 php.ini 文件是否正确加载。

在运行 PHPUnit 时还要检查它是否在命令行中,因为在 Web 模式下运行时,php.ini 与 php.ini 的路径可能不同。

于 2013-01-21T14:40:59.317 回答