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

PHP开发MySQL CRUD功能时read.php第41行出现数组偏移访问警告如何解决

错误原因

  • 你的表格行渲染代码放在了while循环外部:mysqli_fetch_assoc()遍历完所有结果集后会返回null结束循环,此时循环外的$rows已经是null值,访问数组下标自然触发该警告
  • 现有写法即使规避报错也只能渲染1条数据,无法输出全部学生列表

修复方案

将表格行<tr>的全部代码挪到while循环内部即可,修改后的对应代码段如下:

<tbody>
    <?php 
        $i = 0;
        while($rows = mysqli_fetch_assoc($result)){
            $i++;
    ?>
        <tr>
            <th scope="row"><?php echo $i; ?></th>
            <td><?php echo $rows['student_id'];?></td>
            <td><?php echo $rows['Name']; ?></td>                       
            <td><?php echo $rows['DOB']; ?></td>                        
            <td><?php echo $rows['sex']; ?></td>                        
            <td><?php echo $rows['Class']; ?></td>
        </tr>
    <?php 
        } 
    ?>
</tbody>

可选优化建议

  • 可以在输出字段前加isset()判断,避免字段不存在的报错
  • 数据库查询完成后建议用mysqli_free_result($result)释放结果集内存
  • 上线环境建议关闭PHP错误提示显示,改为写入日志文件避免泄露敏感信息

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 19:06:03