我四处搜索过,但看起来大多数有类似问题的人在一个SQL变量上有两个字符串,而我有两个不同的参数。
我的代码:

xpcounter = ("UPDATE CharactersDB SET Exp=%s WHERE %s", xp, name) #where is name variable
cur.execute(*xpcounter)

我也试过:
xpcounter = ("UPDATE CharactersDB SET Exp=%s WHERE %s") #where is name variable
cur.execute(xpcounter, xp, name)

两次我都得到了
TypeError: execute() takes at most 3 arguments (4 given)

我做错什么了?
谢谢!
编辑:根据monoid的建议,我的代码现在看起来像:
xpcounter=(“更新字符sdb SET Exp=%s,其中%s”,(xp,name,))
当前执行(*xpcounter)
现在我得到一个
截断的整数值不正确:“testname”
当我运行它时。
编辑:我的数据库更新正确,只是一个警告,而不是一个错误。

最佳答案

在元组中传递其他参数:

xpcounter = "UPDATE CharactersDB SET Exp=%s WHERE %s"
cur.execute(xpcounter, (xp, name,))

09-13 09:18