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

MySQL插入报错1054(42S22):字段列表存在未知列'dawdw',求排查方案

错误原因及解决办法

错误原因

你的INSERT SQL语句里,VALUES后的字符串值(比如dawdw、awdawd)没有用单引号包裹,MySQL会把这些无引号的内容识别为列名,但你的ord表中不存在名为dawdw的列,所以触发1054 (42S22)错误。

解决办法

方式1:给字符串值加单引号(不推荐,存在SQL注入风险)

修改execute里的SQL语句,把每个值用单引号括起来:

crsr.execute(f"INSERT INTO ord (type, link, sitename, telgramname) VALUES ('dawdw', 'awdawd', 'awdwada', 'adwwa')")

方式2:使用参数化查询(推荐,安全且规范)

用占位符%s代替直接拼接字符串,彻底避免SQL注入问题,同时也能自动处理字符串的引号包裹:

conn = mysql.connector.connect(
    host=HOSTNAME,
    user=USERNAME,
    passwd=PASSWORD,
    database=DATABASE
)
crsr = conn.cursor()
# 定义SQL模板和参数列表
sql = "INSERT INTO ord (type, link, sitename, telgramname) VALUES (%s, %s, %s, %s)"
values = ('dawdw', 'awdawd', 'awdwada', 'adwwa')
# 执行参数化查询
crsr.execute(sql, values)
conn.commit()
crsr.close()
conn.close()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 00:22:04