mysqli扩展未加载主因是配置或环境链路中断:一查phpinfo()确认loaded configuration file和extension_dir路径是否正确且php_mysqli.dll存在;二查php.ini中extension=php_mysqli.dll已启用且php为nts模式;三用var_dump(extension_loaded('mysqli'))和php -m | findstr mysqli验证,失败则检查vc++运行库。

PHP 7.3.33 在 Windows 上无法加载 mysqli 扩展,通常不是扩展本身缺失,而是配置或环境链路中断。重点不是“装没装”,而是“启没启、找没找到、依赖齐不齐”。下面分三步直击核心问题:
确认 php.ini 路径和 extension_dir 设置是否正确
很多人改了错的 php.ini,或 extension_dir 指向了空目录或错误路径。
- 新建一个 info.php 文件,内容为
<?php phpinfo(); ?>,用浏览器访问它 - 在页面中搜索 Loaded Configuration File,确认显示的是你正在编辑的那个 php.ini(常见错误:改了 php.ini-development 却没重命名,或改了 CLI 模式的配置但 Web 模式用的是另一个)
- 再搜索 extension_dir,看它的值是否指向真实存在的 ext 目录(如
C:\php\ext),且该目录下确实存在php_mysqli.dll文件(注意 PHP 7.3 是 NTS 版本,应使用php_mysqli.dll,不是php_mysql.dll) - 如果
extension_dir是相对路径(如"ext"),确保它相对于 php.exe 所在目录能正确定位
检查 mysqli 扩展启用状态与 Windows 依赖库
Windows 下 mysqli 不仅需要 DLL,还依赖 MySQL 客户端库(libmysql.dll 或 php_mysqli.dll 内置的 mysqlnd)。
- 打开 php.ini,查找
;extension=mysqli或;extension=php_mysqli.dll,去掉前面的分号,保存 - 若使用的是 mysqlnd(PHP 7.3 默认),无需额外放
libmysql.dll;但若你手动切换过 libmysql 方式,则必须把libmysql.dll放入系统 PATH(如C:\Windows\System32或 PHP 根目录),否则扩展加载会静默失败 - 检查 PHP 是否运行在 NTS(Non-Thread-Safe) 模式:phpinfo() 中看 Thread Safety 显示 disabled —— 这是 phpstudy / Apache + mod_php 场景下的典型配置,对应扩展名应为
php_mysqli.dll,而非 TS 版本
验证加载结果并排查静默失败
即使 php.ini 改对了,也可能因权限、路径拼写、VC++ 运行库缺失等导致扩展未真正载入。
- 重启 Web 服务(不是只刷新页面):phpstudy 面板点“重启”Apache/Nginx,或手动重启 IIS/Apache 服务
- 创建 verify.php:
<?php var_dump(extension_loaded('mysqli'));,浏览器或命令行执行,返回bool(true)才算成功 - 命令行验证(排除 Web 环境干扰):
php -m | findstr mysqli,有输出说明 CLI 模式 OK;若无,运行php --ini确认 CLI 加载的是哪个 php.ini - 若仍失败,检查 Windows 事件查看器或 PHP 错误日志(php.ini 中
error_log = php_errors.log),常有类似 “The specified module could not be found” 提示 —— 多半是缺 VC++ 2015–2022 运行库(需安装 Microsoft Visual C++ Redistributable)
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











