mysqli扩展未加载导致“Call to undefined function mysqli_connect()”错误,需通过phpinfo()确认、编辑php.ini启用extension=mysqli、命令行验证php -m | grep mysqli及Windows下检查DLL依赖。

如果您运行 PHP 脚本时提示“Call to undefined function mysqli_connect()”,则可能是 mysqli 扩展未被正确加载。以下是通过 phpinfo() 确认扩展是否启用的具体操作方法:
一、创建并访问 phpinfo() 页面
phpinfo() 函数会输出当前 PHP 环境的完整配置信息,包括已加载的扩展列表。通过该页面可直观查看 mysqli、pdo_mysql 等扩展是否出现在“Loaded Modules”或对应扩展区块中。
1、使用文本编辑器新建一个名为 info.php 的文件。
2、在文件中写入内容:。
立即学习“PHP免费学习笔记(深入)”;
3、将 info.php 上传至 Web 服务器的可访问目录(如 Apache 的 htdocs 或 Nginx 的 root 目录)。
4、在浏览器中访问 http://localhost/info.php(或对应域名路径)。
5、在页面中按 Ctrl+F 搜索 mysqli,确认是否出现“mysqli support => enabled”及“Client API library version”等字段。
二、检查 php.ini 中 extension 配置项
phpinfo() 页面顶部的 “Loaded Configuration File” 行明确显示了当前生效的 php.ini 文件路径。若 mysqli 未启用,需手动编辑该配置文件启用对应扩展。
1、在 phpinfo() 页面查找 “Loaded Configuration File” 对应的绝对路径。
2、用管理员权限打开该 php.ini 文件。
3、搜索 extension=mysqli,确认该行未被分号注释(即不以 ; 开头)。
4、同时检查 extension=pdo_mysql 是否也处于启用状态(部分框架依赖 PDO 接口)。
5、保存文件后,重启 Web 服务器(如 systemctl restart apache2 或 nginx -s reload)。
三、验证扩展是否实际加载
仅靠 php.ini 配置启用并不保证扩展成功载入,可能因.so/.dll 文件缺失、路径错误或依赖库不兼容导致静默失败。需结合命令行与脚本双重验证。
1、在终端执行 php -m | grep mysqli,观察是否输出 mysqli 及 pdo_mysql。
2、若无输出,执行 php -i | grep "Configuration File" 确认 CLI 模式加载的 php.ini 是否与 Web 模式一致。
3、创建 verify.php 文件,内容为:。
4、在浏览器或命令行运行该脚本,返回 bool(true) 表示扩展已加载成功。
四、排查 Windows 下 DLL 依赖问题
Windows 环境中 mysqli 扩展依赖 libmysql.dll 或 mysqlnd 库,若系统 PATH 中缺失对应 DLL,即使 extension 已启用也会加载失败,且 phpinfo() 中不显示该模块。
1、确认 php.ini 中 extension_dir 指向正确的扩展目录(如 "ext" 子目录)。
2、检查该目录下是否存在 php_mysqli.dll 文件。
3、将 PHP 安装目录下的 libmysql.dll(或同版本的 libmysql.dll)复制到 Windows 系统目录(如 C:\Windows\System32)或 Apache/bin 目录。
4、确保 php.ini 中未启用 extension=php_pdo_mysql.dll 与 extension=php_mysqli.dll 同时加载冲突项(二者选其一即可)。











