2016-09-03 4 views
-1

저는 python3.4를 실행 중이며 MySQLdb 라이브러리를 사용하여 쿼리를 실행하려고합니다.Python3.4 int 객체가 반복 가능하지 않습니다 - MySQLdb

하나의 성공적인 쿼리를 수행했지만 이제는 쿼리의 정수와 관련하여 문제가 있습니다.

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 개를 변경하려고 : 변수 위치

   location = player_info[6] 

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

값 난 그냥 오류가 계속 2입니다 : 여기 코드는 문자열 형식으로하지만 여전히 같은 오류가 발생합니다.

위치 = 2 개

어떤 아이디어 :

나는 단순히에 "위치"변수를 변경 시도?

+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,)); 
관련 문제