我正在使用 python(3.5.1) 并且我想仅更新该玩家的相关行上的 Player_score 字段(通过玩家名称选择(这些是唯一的但不是主键))。我一直试图让它像这样工作一段时间,但无济于事,我想不出任何其他方式让它工作。任何帮助都会很棒,工作代码也会很棒 - 谢谢 xx
def End_Game(Score, Name):
Score = str(Score)
print("Final Score for", Name, "was:", Score)
with sqlite3.connect("Highscores.db") as db:
cursor = db.cursor()
cursor.execute("UPDATE Highscores SET Player_Score = ? WHERE Player_Name = ? ", Score, Name)
我收到错误消息:TypeError: function takes at most 2 arguments (3 given)
但是如果我删除其中一个引用(直接从子句末尾删除它),它会说:sqlite3.ProgrammingError: Incorrect number of bindings supplied. The current statement uses 2, and there are 1 supplied.
因此,如果有人可以提供帮助或建议,我将不胜感激。我希望这是一个简单的修复,我只是忘记了一些东西.xx
******由于,发布 - 在 ? 对于 Player_Name Stops 错误消息,但该表仍未更新。任何帮助为什么会很好 - 尽管如此,第一个问题仍然如此。xx
您需要将参数作为元组传递,更改
cursor.execute("UPDATE Highscores SET Player_Score = ? WHERE Player_Name = ? ", Score, Name)
至
cursor.execute("UPDATE Highscores SET Player_Score = ? WHERE Player_Name = ? ", (Score, Name))
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句