php 报错“trying to access array offset on value of type bool”表明 `fetch()` 返回了 `false`(查询失败或无数据),而非预期的关联数组,根本原因是错误混用了 pdo 的预处理语句与普通查询的取值方式。
当你使用 $conn->prepare() + $stmt->execute() 执行查询时,$stmt->fetch() 是完全可用的——但前提是必须确保:
而你当前报错的核心在于:$result->fetch() 在首次调用时就返回了 false,说明查询未返回任何有效行(可能因 SQL 错误、空表、权限问题或字段名不匹配)。此时 $row 是布尔值 false,后续 $row['id'] 就会触发「尝试对布尔值访问数组下标」的致命警告。
✅ 正确做法(推荐使用 PDO 预处理,兼顾安全与可维护性):
prepare("SELECT id, date, line, block, start FROM bustracker ORDER BY id ASC");
if (!$stmt->execute()) {
error_log("Query failed: " . implode(", ", $stmt->errorInfo()));
die("数据库查询失败,请检查配置和表结构。");
}
// 2. 安全遍历结果(使用 fetch(PDO::FETCH_ASSOC) 明确指定返回关联数组)
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
$id = (int)$row['id']; // 强制转为整型,防 XSS 和类型隐患
?>
" class="btn btn-info">Edit
" data-toggle="modal" class="btn btn-danger">Delete
⚠️ 关键注意事项:
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
cho 前务必用 htmlspecialchars() 防止 XSS 攻击,尤其当字段含用户输入内容时。rowCount() === 0): ?>
暂无数据
总结:该问题本质是「未校验查询执行状态 + 误判 fetch() 返回值类型」。坚持使用 PDO 预处理、显式指定 FETCH_ASSOC、逐层排查连接/SQL/字段三要素,即可彻底解决表格空白与 PHP 警告。
# mysql
# php
# word
# html
# access
# ai
# lsp
# sql
# xss
# echo
# Array
# 关联数组
# while
# date
# mysqli
# pdo
# bool
# 循环
# 值类型
# 数据库
相关栏目:
【
Google疑问12 】
【
Facebook疑问10 】
【
网络优化76771 】
【
技术知识130152 】
【
IDC云计算60162 】
【
营销推广131313 】
【
AI优化88182 】
【
百度推广37138 】
【
网站推荐60173 】
【
精选阅读31334 】
相关推荐:
Win11如何设置电源计划_Win11电源计划优化教程【攻略】
Win11怎么关闭任务栏小组件_Windows11隐藏任务栏天气图标
Mac怎么开启“任何来源”_Mac安装未签名应用的设置方法【解决】
c++如何连接Redis c++ hiredis库使用教程【指南】
Win11怎么设置右键刷新选项_Windows11显示更多选项技巧
mac怎么安装字体_MAC添加第三方字体与字体册管理【教程】
php转mp4怎么保留字幕_php处理带字幕视频转换说明【说明】
php8.4如何调用com组件_php8.4windows下com操作指南【教程】
如何用正则表达式精确匹配最多含一个换行符的起止片段
Win11怎么设置快速访问_Windows11文件资源管理器主页
php打包exe如何加密代码_防反编译保护方法【技巧】
Win11色盲模式怎么开_Win11屏幕颜色滤镜设置【关怀】
Windows怎样关闭桌面弹窗广告_Windows关闭桌面弹窗设置【教程】
LINUX如何开放防火墙端口_Linux firewalld与iptables开放端口命令【安全配置】
Python类装饰器使用_元编程解析【教程】
Windows10如何查看保存的WiFi密码_Win10命令行netsh wlan查询
如何在 Go 中可靠地测试含 time.Time 字段的结构体
Windows10如何重置此电脑_Windows10电脑重置方法【步骤】
Win10系统更新错误0x80240034怎么办 Win10更新错误解决法【方法】
php下载安装后memory_limit怎么设置_内存限制调整【技巧】
如何在Golang中捕获结构体方法错误_Golang方法返回error处理实践
如何在Golang中指定模块版本_使用go.mod控制版本号
Win11怎么恢复出厂设置_Win11重置此电脑保留文件方法【详解】
Windows10系统怎么查看CPU核心数_Win10逻辑处理器数量查看
如何减少Golang内存碎片化_Golang内存分配与回收优化方法
php嵌入式需要什么环境_搭建php+linux嵌入式开发环境【详解】
如何将文本文件中的竖排字符串转换为横排字符串
Windows11怎样开启游戏模式_Windows11游戏模式开启攻略【方法】
LINUX怎么查看进程_LINUX ps命令查看运行服务
Win11怎么关闭内容自适应亮度_Windows11显示设置CABC关闭
Win11怎么查看wifi信号强度_检测Windows 11无线网络质量方法【详解】
c++怎么实现大文件的分块读写_c++ 文件指针seekp与seekg偏移控制【方法】
Python爬虫项目实战教程_Scrapy抓取与存储数据实例
Win11怎么关闭搜索历史_Win11清除任务栏搜索记录【隐私】
Python安全爬虫设计_IP代理池与验证码识别策略解析
Win11如何关闭小娜Cortana Win11禁用Cortana语音助手【优化】
Win11怎么关闭定位服务 Win11禁止应用获取位置信息【隐私】
php订单日志怎么导出excel_php导出订单日志到表格教程【教程】
Win11怎么检查TPM2.0模块_Windows11受信任平台模块开启状态查询
php怎么下载安装后测试是否成功_简单脚本验证方法【操作】
Win10怎么关闭自动更新错误重启 Win10策略禁止失败补丁强制重启【防护】
如何使用Golang构建简易投票统计功能_Golang投票数据汇总与展示示例
如何在 Go 中创建包含映射(map)的切片(slice)结构
如何使用Golang管理模块版本_Golanggo mod tidy与升级方法
Win11怎么设置夜间模式_Windows11显示设置蓝光过滤强度
Go语言中CookieJar的持久化机制解析:内存存储与自定义持久化方案
如何在Golang中处理模块包路径变化_Golang包重命名与导入方法
c++怎么使用std::tuple存储多元组数据_c++ 11获取元素与解包操作【技巧】
Win11怎么把图标拖到任务栏_Win11固定应用快捷方式指南【方法】
Win11时间怎么同步到原子钟 Win11高精度时间同步设置【指南】
2026-01-04
致胜网络推广营销网专注海外推广十年,是谷歌推广.Facebook广告全球合作伙伴,我们精英化的技术团队为企业提供谷歌海外推广+外贸网站建设+网站维护运营+Google SEO优化+社交营销为您提供一站式海外营销服务。