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

开发管理员订单展示页遇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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 08:11:13