2016-09-03 85 views
-1

我正在运行python3.4,我试图用MySQLdb库运行查询。Python3.4 int对象不可迭代 - MySQLdb

我已经做了一个成功的查询,但现在我坚持谈到整数查询。下面的代码:变量位置

   location = player_info[6] 

       query2 = ("SELECT name FROM locations WHERE id=%d"); 
       execute = cursor.execute(query2, (location)); 

值为2。我只是不断收到错误:

File "login.py", line 75, in tryLogin execute = cursor.execute(query2, (location));

File "/usr/lib/python3/dist-packages/MySQLdb/cursors.py", line 195, in execute args = tuple(map(db.literal, args)) TypeError: 'int' object is not iterable

我想因为有人说,这都应该到%d更改为%s以字符串格式,但我仍然得到相同的错误。

我也试图改变 “位置” 变量简单:

位置= 2个

任何想法?

+0

这里有一个例子使用了一个数字。 http://mysql-python.sourceforge.net/MySQLdb.html#some-examples –

+0

你的其他评论发生了什么?我应该把问题放在哪里??????? ?? ?? ? – jdoe

+0

我在想其他语言的PreparedStatements。 –

回答

1
  execute = cursor.execute(query2, (location)); 

在Python中,(location)是一个加括号的表达式,而不是元组。为了强制这是一个元组,你需要添加一个逗号:(location,)

  execute = cursor.execute(query2, (location,));