我在我的nginx Web服务器使用的docker容器中运行php:7-fpm。除了当我试图在我的PHP代码中实例化mysqli连接时,一切都运行良好。我收到以下错误:
"NOTICE: PHP message: PHP Fatal error: Uncaught Error: Class 'Listener\mysqli' not found in index.php:104
这是我用于构建图像的Dockerfile,我明确地安装了mysqli扩展:
FROM php:7-fpm
RUN docker-php-ext-install mysqli
似乎是在下面的phpinfo()输出的情况下安装的。我需要以某种方式配置或启用它吗?
答案 0 :(得分:3)
你的问题不在于你错过了mysqli扩展名。
如果您正在做这样的事情:
namespace Listener;
class Foo
{
public function bar() {
$conn = new mysqli(...);
}
}
然后,PHP会将new mysqli()
解释为new \Listener\mysqli()
,因为您当前位于\Listener
命名空间中。要解决此问题,您只需将mysqli()
显式锚定到根命名空间:
$conn = new \mysqli(...);