PHP执行MySQL SELECT语句时结果对象字段均为NULL问题求助
解决mysqli_query返回结果对象字段全为NULL的问题
嘿,我之前也碰到过这种让人摸不着头脑的情况,结合你在Windows 10 XAMPP环境下的问题,咱们来一步步拆解排查:
最可能的根源:表名是MySQL保留关键字
你用的表名transaction是MySQL的保留关键字!直接用它作为表名会导致MySQL解析SQL时出现隐性错误——虽然mysqli_query没有返回false,但实际上查询并没有正常执行,返回的结果对象就是这种残缺的状态。
解决方法很简单,给表名加上反引号`,修改SQL语句:
$getSessionsQuery = "select * from `transaction`";
强制检查连接和查询错误
有时候看似连接成功,但可能存在隐性问题;或者查询出错但你没捕获到错误信息。建议在代码里加上错误检查:
- 检查数据库连接是否正常:
if (mysqli_connect_errno()) { die("数据库连接失败: " . mysqli_connect_error()); }
- 执行查询后检查查询错误:
$result = mysqli_query($conn, $getSessionsQuery); if (!$result) { die("查询执行失败: " . mysqli_error($conn)); }
这样能直接拿到MySQL返回的具体错误信息,快速定位问题。
排查XAMPP环境兼容性
如果上面的方法没解决问题,可能是XAMPP里的PHP和MySQL版本不兼容:
- 尝试升级XAMPP到最新稳定版,确保PHP和MySQL的驱动匹配
- 打开
phpinfo()页面,检查mysqli扩展是否正常加载(搜索mysqli模块,确认状态为enabled)
补充:结果集的正确读取方式
另外,有时候直接var_dump结果对象会看到这些字段为NULL,但只要查询正常执行,调用mysqli_fetch_assoc()、mysqli_fetch_array()等方法是能获取到数据的。不过你这种情况应该是查询本身没执行成功,所以优先解决前面的问题。
内容的提问来源于stack exchange,提问作者RingAndReed
相关产品推荐
相关产品推荐

