如何在SQLITE中更新表数据=?WHERE id =?[已关闭]

vlju58qv  于 2023-02-19  发布在  SQLite
关注(0)|答案(1)|浏览(188)

这个问题是由打字错误或无法再重现的问题引起的。虽然类似的问题在这里可能是on-topic,但这个问题的解决方式不太可能帮助未来的读者。
4天前关闭。
Improve this question
这是我得到的错误:
运行时错误:占位符(?)少于值("Joe"、"7"、"21"、"6")
可以确认值Joe,7,21,6是从我的html表单传递到python的,所以我相信这是一些语法错误。
我正在尝试使用birthday id更新数据库中的birthday条目。我可以在SQLITE中运行这个查询,在SQLITE中我只需要键入实际值而不是qmark占位符,所以我假设这是python中的语法错误。我已经阅读了sqlite文档,但找不到任何讨论UPDATE table data =?WHERE id =?的示例。
我可以在python中运行与此类似的其他数据库查询,而不会出现错误
这是我期望在python中工作的东西,但它不是..我已经尝试了我能想到的所有其他语法变体

db.execute("UPDATE birthdays name = '?', month = '?', day = '?' WHERE id = '?'", name, month, day, id)

因为当我像这样运行SQLITE查询时,它会工作。

UPDATE birthdays name = 'Joe', month = '7', day = '21' WHERE id = 6;
jpfvwuh4

jpfvwuh41#

尝试在占位符两边不要加上'。https://docs.python.org/3/library/sqlite3.html上的占位符两边没有引号,即使是字符串值。

db.execute("UPDATE birthdays SET name = ?, month = ?, day = ? WHERE id = ?", name, month, day, id)

相关问题