You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:mysqli_connect()无返回结果,无报错无对象,页面空白

MySQL连接无反馈无报错的排查方案

1. 先强制开启PHP错误显示

页面空白大概率是PHP报错但没对外输出,直接在代码最顶部加上这两行,让错误信息显示出来:

error_reporting(E_ALL);
ini_set('display_errors', 1);

不管是扩展没生效、语法问题还是权限错误,都会直接在页面上显示,这是排查空白页的第一步。

2. 确认mysqli扩展真的生效

写个单独的测试脚本test_mysqli.php,内容如下:

<?php
phpinfo();
?>

运行这个脚本后,页面里搜索mysqli关键词。如果找不到相关模块信息,说明你改的php.ini文件不对(CLI和Web环境的php.ini可能不是同一个),或者修改后没重启Apache/Nginx服务器,导致扩展没加载。

3. 修正连接代码的逻辑

你的原代码里,连接成功后没有任何输出,所以哪怕连接正常页面也是空白。另外$con->info是存储最近SQL查询的信息,刚连接时本来就是空的,var_dump它自然看不到内容。修改代码如下:

$host="localhost";
$port=3306;
$socket="";
$user="root";
$password="";
$dbname="deve";

$con = mysqli_connect($host, $user, $password, $dbname, $port, $socket);
if(mysqli_connect_error()) {
    echo "Failed to connect to MySQL: " . mysqli_connect_error();
} else {
    echo "连接成功!";
    var_dump($con); // 直接打印整个连接对象,比单独取属性更直观
    echo "客户端信息:" . $con->client_info;
}

4. 验证MySQL服务本身是否正常

用命令行直接测试MySQL连接,排除服务端问题:

mysql -h localhost -P 3306 -u root -p

如果命令行都连不上,说明MySQL服务没启动,或者root密码不对,先解决MySQL本身的问题。

5. 排查权限与端口拦截

  • 确认MySQL的root用户允许从localhost连接(默认是允许的,但如果手动改过权限可能受限)
  • 暂时关闭本地防火墙,测试是否是3306端口被拦截导致连接失败

内容的提问来源于stack exchange,提问作者Edmund

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 13:47:21