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

PyMySQL报OperationalError 1054:插入值被识别为列问题求助

解决PyMySQL插入时值被识别为列的问题

问题出在你写的SQL语句里——VALUES里的第一个%s被反引号()包起来了。MySQL里反引号是用来标记表、列这类数据库对象名的,所以当PyMySQL把参数替换进去后,你的字符串'This is a string'`就被当成列名了,自然会报“Unknown column”错误。

直接把VALUES里的反引号删掉就行,正确代码如下:

sql = 'INSERT INTO `db`.`table`(`cola`,`colb`) VALUES (%s,%s);'
vals = ('This is a string',227.77)
cur.execute(sql,vals)

额外提两点:

  • 不用手动给字符串加单引号,PyMySQL会自动处理参数的引号和转义,还能避免SQL注入。
  • 别用字符串格式化(比如%、format)拼接SQL,就用这种参数化查询的方式,安全又省心。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 18:15:38