迁移至MySQLi:PHP获取列结果异常问题排查求助
旧MySQL代码迁移MySQLi:解决PHP拿不到完整列结果的坑
最近折腾一套依赖废弃mysql_*函数的旧代码,要把所有查询迁移到MySQLi,过程中踩了个奇怪的坑:PHP里执行查询时死活拿不到全部列的结果,但把一模一样的SQL直接丢数据库服务器上跑,所有结果都正常出来。
排查思路
- 首先直接排除数据库和SQL本身的问题:毕竟数据库端跑没问题,那锅肯定在PHP的结果获取环节。
- 翻来覆去核对了SQL语句的字段、关联、条件,确认查询本身没毛病。
- 盯着MySQLi的结果处理代码抠细节:是不是用错了结果获取函数?比如本来该用
mysqli_fetch_assoc()却误用了mysqli_fetch_row(),或者遍历结果集的时候提前触发了终止逻辑?
解决结果
确认SQL查询完全无误后,调整了PHP中MySQLi获取结果的逻辑,现在终于能正常拿到查询返回的全部结果了。
内容的提问来源于stack exchange,提问作者nibb11
相关产品推荐
相关产品推荐

