2013-07-06 47 views
1

我已经搜遍了,但它看起来像大多数人有一个SQL变量有两个字符串,而我有两个不同的参数。MySQL和Python的执行()只需要3个参数,4给出

我的代码:

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) 

我在做什么错?

谢谢!

编辑:按照幺的建议下,我的代码现在看起来像:

xpcounter =( “UPDATE CharactersDB SET精通=%s的其中%s”,(XP,名称)) cur.execute(* xpcounter)

现在,我得到一个

截断不正确INTEGER值: '测试名'

当我运行它。

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

回答

3

传递一个元组附加参数:

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

真棒,太感谢你了! 编辑:好了,现在它给出了一个“截断不正确的INTEGER值:”当我输入一个名称。我认为(我对编码还很陌生)它试图将字符串转换为整数? – mathieu

+0

@Mathieu - 这是一个不同的问题 - 见[这里](http://stackoverflow.com/questions/4946899/mysql-truncated-incorrect-integer-value) – mata

+0

谢谢,我检查了它,它确实正确更新。再次感谢! – mathieu

相关问题