2016-09-03 7 views
-1

私はpython3.4を実行しています。私はMySQLdbライブラリを使ってクエリを実行しようとしています。Python3.4 intオブジェクトは反復不可能です - MySQLdb

私は1つの成功したクエリを実行しましたが、今はクエリの整数に関しては固まっています。ここでは、コードです:可変ロケーションの

   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

誰かがそれがすべてであるべきと言ったので、私は%sの%dを変更しようとしました文字列形式では、私はまだ同じエラーが発生します。

私はまた、 "場所" 変数に単に変更しようとしている:

場所= 2

任意のアイデア? Pythonで

+0

ここでは数値を使用する例があります。 http://mysql-python.sourceforge.net/MySQLdb.html#some-examples –

+0

あなたの他のコメントに何が起こりますか?私は疑問符をどこに置くべきですか? ?? ?? ? – jdoe

+0

私は他の言語でPreparedStatementsを考えていました。 –

答えて

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

(location)は括弧で囲まれた式ではなく、タプルです。これを強制的にタプルにするには、コンマを追加する必要があります。(location,)

  execute = cursor.execute(query2, (location,)); 
関連する問題