1

我四处搜索,但看起来大多数有类似问题的人在一个 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 = ("UPDATE CharactersDB SET Exp=%s WHERE %s", (xp, name,)) cur.execute(*xpcounter)

现在我得到一个

截断不正确的 INTEGER 值:'testname'

当我运行它时。

编辑:原来我的数据库正在正确更新,只是一个警告,而不是一个错误。

4

1 回答 1

3

在元组中传递附加参数:

xpcounter = "UPDATE CharactersDB SET Exp=%s WHERE %s"
cur.execute(xpcounter, (xp, name,))
于 2013-07-06T16:59:58.887 回答