我有一个与这里描述的类似的问题:
一切都如我所愿;我的代码访问数据库并打印输出,无论我是从命令行界面还是从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的路径可能不同。