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

PHP执行UPDATE更新语句报错Unknown column 'Jason' in 'field list'如何解决

数据库更新报错Unknown column 'xxx' in 'field list' 问题解决

报错信息:Error updating record: Unknown column 'Jason' in 'field list'

问题复现背景

  • 使用PHP进行开发,原执行的更新SQL语句为:
    $sql = "UPDATE users SET FirstName=$fname WHERE id=$id";
    
  • 变量取值说明:$fname 实际传入值为Jason,$id 经校验取值正常
  • 预期逻辑:修改users表指定id行的FirstName字段值为Jason
  • 实际问题:SQL解析时将Jason识别为字段名而非待写入的字符串值,直接硬编码写入"Jason"会触发意外字符串语法错误,且业务要求$fname为用户可自定义的变量。

根因与修复方案

SQL语法规定,字符串类型的字段值必须使用单引号包裹。此前误区认为引号仅可用于硬编码字符串,实际拼接SQL时变量形式的字符串值同样需要用引号包裹。
修改后的正确SQL写法:

$sql = "UPDATE users SET FirstName='$fname' WHERE id=$id";

调整后更新操作即可正常执行。

安全建议

直接将用户可控变量拼接入SQL语句存在SQL注入的高危安全风险,生产环境优先使用预处理语句(Prepared Statements)构建SQL查询,既可以规避注入风险,也无需手动处理字符串的引号包裹逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 07:54:01