开发管理员订单展示页遇mysqli_fetch_array参数错误,求协助
解决 mysqli_fetch_array() 参数错误的问题
嘿,我看到你在开发管理员订单展示页面时碰到了这个头疼的错误,别慌,咱们来一步步拆解解决它。
这个错误 Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result 的核心原因是:你传给mysqli_fetch_array()的$res并不是有效的查询结果集,说明你的SQL查询执行失败了,返回的是false而非正常的结果对象。
问题根源
先看你的SQL语句:
select * from 'confirm_order_address' order by id desc
在MySQL语法里,表名不能用单引号包裹——单引号是用来定义字符串常量的,数据库会把'confirm_order_address'当成一个普通字符串,而非你要查询的表名,这直接导致查询执行失败,自然就拿不到结果集了。
修正后的完整代码
把SQL里的单引号改成反引号(`)(或者直接去掉引号,只要表名不是MySQL关键字),同时加上错误处理逻辑,方便后续快速排查问题:
<div class="grid_10"> <div class="box round first"> <h2>Display Order</h2> <div class="block"> <?php // 执行查询并检查是否成功 $res = mysqli_query($link, "select * from `confirm_order_address` order by id desc"); if (!$res) { // 输出数据库错误信息,便于调试 die("查询执行失败: " . mysqli_error($link)); } echo "<table border='1'>"; echo "<tr>"; echo "<td style='font-weight:bold'>fullname</td>"; echo "<td style='font-weight:bold'>mobileno</td>"; echo "<td style='font-weight:bold'>email</td>"; echo "<td style='font-weight:bold'>pincode</td>"; echo "<td style='font-weight:bold'>address</td>"; echo "<td style='font-weight:bold'>landmark</td>"; echo "<td style='font-weight:bold'>city</td>"; echo "</tr>"; while($row = mysqli_fetch_array($res)) { echo "<tr>"; echo "<td>" . $row["fullname"] . "</td>"; echo "<td>" . $row["mobileno"] . "</td>"; echo "<td>" . $row["email"] . "</td>"; echo "<td>" . $row["pincode"] . "</td>"; echo "<td>" . $row["address"] . "</td>"; echo "<td>" . $row["landmark"] . "</td>"; echo "<td>" . $row["city"] . "</td>"; echo "</tr>"; } echo "</table>"; ?> </div> </div> </div>
额外调试建议
- 后续写SQL时,表名/字段名如果包含特殊字符或属于MySQL关键字,用反引号包裹;如果是普通名称,直接写即可;
- 养成给数据库操作加错误处理的习惯,比如上面的
if (!$res)判断,能帮你快速定位SQL语法或权限类问题; - 可以先检查
$link是否是有效的数据库连接,比如用if (!$link) { die("连接失败: " . mysqli_connect_error()); }验证。
内容的提问来源于stack exchange,提问作者Prashant Kumar
相关产品推荐
相关产品推荐

