2016-09-03 88 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,));