2017-10-11 4 views
0

MySQL에서 연결해야하는 간단한 프로그램을 작성하고 있습니다. 내 쿼리에 문제가있어서 그걸로 붙어 있습니다. "문자열 형식화 중에 모든 인수가 변환 된 것은 아니지만"아는 한 내 구문이 정확합니다. 그것에 관한 문제는 무엇입니까? 여기 내 코드는 다음과 같습니다.Python MySQLdb 오류 - 형식 문자열에 대한 인수가 충분하지 않습니다.

username = (self.username.text()) 
cur.execute("SELECT * FROM users WHERE username = %s", (username)) 
+1

당신은 튜플로, 당신은"사용자 이름 "다음에 쉼표 누락 쿼리 매개 변수를 정의하는 의미 ,))' – alecxe

+0

오, 고마워. 나는 여기 btw 초보자입니다. 나는 그것이 효과가있다면 이미 끝났다고 생각했다. – Jaypee

답변

0

많은 시련과 실수를 한 후에. 나는 벌써 그것을 얻었다. 여기있다 : `cur.execute를 ("SELECT * 사용자 FROM WHERE 이름 = % s '에, (사용자 이름 :

username = (self.username.text()) 
cur.execute("SELECT * FROM users WHERE username = %s", (username,)) 
+1

아니요, SQL 쿼리의 문자열 형식은 해결책이 아닙니다. 이것은 ** 위험합니다 (SQL 인젝션 (https://en.wikipedia.org/wiki/SQL_injection) 참조) ** b) ** 에러가 발생하기 쉽습니다 ('username '이 인용문?). – alecxe

+0

이미 답변을 업데이트했습니다. 다시 한 번 감사드립니다. – Jaypee