sqlite3.OperationalError:在“?"附近:尝试替换值时出现语法错误

omvjsjqw  于 2023-04-30  发布在  SQLite
关注(0)|答案(1)|浏览(146)

我是一个新的编码器在这里,我一直在努力找出为什么有一个语法错误,在我的代码,但我不能理解为什么。

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

我试过用INSERTREPLACE替换它,也试过.format类型,但这些似乎都不起作用。

zbsbpyhn

zbsbpyhn1#

我相信你可以使用以下内容:

c.execute("UPDATE piesemagazin SET id=?,nume=?,tip=?,numar=?,pret=? WHERE IdProdus=?",(id, nume, tip, numar, pret,id))
  • 也就是说,你指定SET,后面是一个逗号分隔的列和值的列表,作为表达式,注意你不能绑定标识符(列,表名称等),所以?被绑定值替换
  • 没有必要在SET子句中包含id列,因为它将保持不变,因为变量id是相同的,所以你实际上是说将id更改为WHERE子句找到的id的值。

这是应用于SQLite文档的路径(突出显示)(注意,带圆圈的蓝色代码是列/值的csv):

相关问题