
当 PHP 环境未启用 MySQLi 扩展或版本过低时,调用 mysqli_connect() 会触发“Call to undefined function mysqli_connect()”致命错误,导致注册表单无法连接数据库。
当 php 环境未启用 mysqli 扩展或版本过低时,调用 `mysqli_connect()` 会触发“call to undefined function mysqli_connect()”致命错误,导致注册表单无法连接数据库。
该错误(Fatal error: Call to undefined function mysqli_connect())并非代码逻辑问题,而是 PHP 运行环境缺失关键组件所致。根本原因在于:当前 PHP 版本未编译或未启用 MySQLi 扩展,常见于老旧 PHP 安装(如 PHP 5.2 及更早版本默认不包含 MySQLi),或 Windows 下的精简版 PHP 包(如某些集成环境未勾选 MySQLi 模块)。
✅ 正确解决方案:启用 MySQLi 扩展或升级 PHP
1. 检查 MySQLi 是否已启用
在项目根目录创建 phpinfo.php 文件并访问:
<?php phpinfo(); ?>
搜索关键词 mysqli —— 若无任何输出,说明扩展未加载。
2. 启用 MySQLi(以 Windows + Apache 为例)
- 打开 php.ini 文件(可通过 phpinfo() 查看“Loaded Configuration File”路径)
- 找到以下行并取消注释(删除前面的分号):
extension=mysqli
- 保存后重启 Web 服务器(Apache/Nginx)
⚠️ 注意:PHP 7.4+ 默认启用 MySQLi;若使用 PHP 8.0+,还建议改用面向对象风格提升可维护性(见下文示例)。
3. 推荐升级至现代 PHP 版本(强烈建议)
PHP 官方已于 2022 年停止对 PHP 7.4 的安全支持,而 MySQLi 在 PHP 7.0+ 中已全面稳定。请升级至 PHP 8.1 或更高版本(需同步检查扩展兼容性)。升级后,dbh.inc.php 可优化为更健壮的写法:
<?php $serverName = "localhost";
$dBUsername = "root";
$dBPassword = "password";
$dBName = "futgraphicsusers";
// 使用面向对象方式连接(推荐)
$conn = new mysqli($serverName, $dBUsername, $dBPassword, $dBName);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
// 可选:设置字符集避免中文乱码
$conn->set_charset("utf8mb4");
? 补充排查要点
- ❌ 不要尝试用 mysql_connect() 替代(该函数自 PHP 7.0 起已被彻底移除)
- ✅ 确保数据库服务(如 MySQL 或 MariaDB)正在运行
- ✅ 验证数据库凭据(用户名/密码/库名)在本地环境中是否正确(例如 phpMyAdmin 可登录)
- ? 若使用 Docker 或云环境(如 XAMPP、WAMP、Laragon),请确认其 PHP 版本及扩展配置面板中 MySQLi 已勾选启用
修复后,注册表单即可正常建立数据库连接。记住:数据库连接失败的第一排查方向永远是环境配置,而非代码本身。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











