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

MySQL插入数据报1054 Unknown column '13'错误,附完整代码求排查

错误原因

你遇到的1054报错由两个核心问题导致:

  • 插入逻辑的预处理语句中,:user_id占位符被多余的反引号包裹,PDO无法识别被反引号(MySQL标识符标记)包裹的内容为参数占位符,参数绑定失效,导致传入的用户ID值13被MySQL错误解析为字段名,触发报错。
  • 新增评论表单的下拉框option的value属性前后额外添加了空格,导致POST提交的用户ID、商品ID值前后携带空白字符,可能额外触发字段类型匹配错误。

修复方案

1. 修复预处理语句

找到插入逻辑中的prepare代码,去掉:user_id外层的反引号:
原代码:

$stmt = $con->prepare("INSERT INTO 
                        comments(comment,item_id,`user_id`) 
                        VALUES(:comment,:item_id,`:user_id`)");

修改后:

$stmt = $con->prepare("INSERT INTO 
                        comments(comment,item_id,user_id) 
                        VALUES(:comment,:item_id,:user_id)");

2. 修复表单下拉框的多余空格

找到用户下拉框的输出代码,去掉value属性内的多余空格:
原代码:

echo '<option value = " '. $user['User_id'] . ' ">' . $user['Username'] . '</option>';

修改后:

echo '<option value = "'. $user['User_id'] . '">' . $user['Username'] . '</option>';

同样修改商品下拉框的输出代码:
原代码:

echo '<option value = " '. $user['Item_ID'] . ' ">' . $user['Name'] . '</option>';

修改后:

echo '<option value = "'. $user['Item_ID'] . '">' . $user['Name'] . '</option>';

可选优化项

  • 将添加评论表单的提交按钮文案从Update改为Add Comment,符合功能语义
  • 将插入成功的提示文案从Record Update改为Record Inserted,避免语义混淆

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 13:54:03