我遇到与here:
相似的问题一切都按照我的预期运作;我的代码访问数据库并打印输出,无论我是从命令行界面还是从Web浏览器运行。结果相同。如果我使用PHPUnit在Eclipse中运行它,我会收到错误:
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";
}
还有一点要指出的是,我在上面代码所在的类中使用了我自己的命名空间。我的单元测试位于全局命名空间中。
我已按照上述网址中的步骤操作,但是,唉,无济于事。 :(
在命令提示符下运行此命令不会出现错误:
php -r "new mysqli();"
有人可以帮我理解这个问题吗?
答案 0 :(得分:0)
我不确定您是否使用正确的路径(DLL或共享对象(.so)文件)配置了php.ini
文件。如果您在命令行上使用Unix / Linux,请尝试运行
$> php -i | grep mysqli
并查看是否显示正在安装的内容,或创建PHP脚本
<?php phpinfo(); ?>
运行该脚本并检查它是否正确加载。如果您确信它确实安装了,请尝试通过检查php.ini的“扩展”部分来检查您的php.ini文件是否正确加载。
检查运行PHPUnit时是否在命令行中,因为在web模式下运行时,php.ini与php.ini的路径可能不同。