PHP执行SQL查询获取数据库数据无法直接读取字段值问题求助
问题修复步骤
- 先处理序列化返回值
你打印的日志是PHP序列化后的字符串,无法直接按数组取值,需要先反序列化得到原始数据集:
$deserializedResult = unserialize($result);
- 正确取到目标数据行
反序列化后的结果是二维索引数组,你要的商品数据存在下标为0的元素里:
$targetItem = $deserializedResult[0];
- 修复echo语法错误
PHP中单引号包裹的字符串不会解析内部变量,且你原有写法的引号嵌套也有语法问题,改成以下任意一种写法即可:
// 写法1:双引号包裹+大括号包裹变量 echo "<a>{$targetItem['ItemName']}</a>"; // 写法2:字符串拼接 echo '<a>' . $targetItem['ItemName'] . '</a>';
额外注意事项
- 你执行的SQL查询条件是
ItemId = 12,但返回数据里的ItemId为7、ItemPrice为10,和你SSMS中存储的对应数据不一致,建议检查SQL执行逻辑是否传错参数,或者是否连接错了数据库/数据表 - 输出到前端的文本建议加HTML转义,避免XSS安全风险:
echo '<a>' . htmlspecialchars($targetItem['ItemName']) . '</a>';
内容的提问来源于stack exchange,提问作者Dorian Ben Haim
相关产品推荐
相关产品推荐

