5

我在我的 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() 输出,它似乎已安装。我需要以某种方式配置或启用它吗?

在此处输入图像描述

4

1 回答 1

4

您的问题不在于您缺少 mysqli 扩展。

如果你正在做这样的事情:

namespace Listener;

class Foo
{
    public function bar() {
        $conn = new mysqli(...);
    }
}

然后 PHP 将解释new mysqli()new \Listener\mysqli()因为您当前在\Listener命名空间中。要解决此问题,您可以显式锚定mysqli()到根命名空间:

$conn = new \mysqli(...);
于 2017-05-05T16:17:32.013 回答