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

sqlite3.OperationalError语法错误:UPDATE语句参数使用问题排查

问题分析与解决

你的SQL UPDATE语句存在语法错误,核心问题是SET子句的写法不符合SQL规范:SQL里UPDATE的SET部分必须明确指定「列名=值」的对应关系,不能直接把所有占位符放在括号里。

正确写法示例

假设你要更新的列依次是nume、tip、numar、pret,参数顺序要和占位符一一对应,同时注意不需要重复传入id作为要更新的列(WHERE条件已经用IdProdus=id定位目标行):

c.execute("UPDATE piesemagazin SET nume=?, tip=?, numar=?, pret=? WHERE IdProdus=?", (nume, tip, numar, pret, id))

为什么之前的方法没用

  • 换成INSERT OR REPLACE解决不了基础语法错误,你本质是要更新而非替换插入,且原语句的语法问题依然存在
  • 用.format拼接SQL不仅会引入SQL注入风险,也没解决UPDATE语句的语法错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 02:14:56