必须启用mysqli或PDO扩展,否则PHP 8连接MySQL会报“Call to undefined function mysqli_connect()”等错误;需通过php -m或phpinfo()确认扩展状态,修正php.ini中extension=mysqli配置并重启Web服务。

PHP8项目报错“Call to undefined function mysqli_connect()”,说明环境里根本没加载mysqli扩展,不是代码问题而是PHP运行时缺关键组件,必须立刻补上才能让数据库连接代码跑起来。
先确认mysqli到底有没有启用
打开终端,执行:php -m | grep mysqli。如果什么也不输出,就代表扩展确实没加载;如果看到mysqli,但你的Web页面仍报错,说明CLI和Web服务器用的是两套php.ini配置文件。
Windows用户直接运行php --ini,看Loaded Configuration File路径,然后用记事本打开那个php.ini;Linux/macOS用户执行php --ini | grep "Loaded"定位配置文件位置。
【注意:Apache/Nginx用的php.ini往往不是你改的那个,务必确认Web服务实际加载的配置文件】
Windows系统启用mysqli扩展
第一步:用记事本打开上一步查到的php.ini文件。
第二步:搜索extension=mysqli,把这一行前面的分号;删掉。PHP 8.0+版本通常写的是extension=mysqli,不是extension=php_mysqli.dll——写错会直接启动失败。
第三步:检查extension_dir是否指向正确的ext目录,例如extension_dir = "C:\php\ext",路径必须存在且不能有中文或空格。
第四步:保存php.ini,重启Web服务(Apache用httpd -k restart,Nginx+PHP-FPM用sudo systemctl restart php8.1-fpm或对应版本)。
Linux系统安装并启用mysqli扩展
方法一(推荐,适用于Ubuntu/Debian系):
① 查当前PHP版本:php -v,比如显示PHP 8.1.27;
解析 MySQL 8.0 的 DDL 脚本,并将表结构导出为 Excel 格式。适用于用户需将 MySQL 的 `CREATE TABLE` 语句转换为结构化的 Excel 文件场景,导出内容包含字段名、数据类型、长度及精度等信息。支持多张表的批量处理,每张表对应 Excel 中的一个独立工作表。适用于数据库文档编写、数据字典生成及模式分析等任务。
② 安装对应扩展包:sudo apt install php8.1-mysql;
③ 重启Web服务:sudo systemctl restart apache2 或 sudo systemctl restart php8.1-fpm。
方法二(CentOS/RHEL系):
运行sudo yum install php-mysqlnd(PHP 8.0+默认用mysqlnd驱动),再重启PHP服务。
【别跳过验证步骤:新建一个info.php文件,内容为,浏览器访问后搜索“mysqli”区块,必须看到完整模块信息才算成功】
macOS系统启用mysqli扩展
如果你用Homebrew安装PHP,执行:brew reinstall php@8.1 --with-mysql(版本号按需替换);
然后检查/opt/homebrew/etc/php/8.1/php.ini(Apple Silicon路径)或/usr/local/etc/php/8.1/php.ini(Intel路径)中extension=mysqli是否已取消注释;
最后运行brew services restart php@8.1刷新服务。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!










