2015-01-09 3 views
0

내가 파이썬과 SQLite는의 ROWID를 compairing하여 해당 이름의 이메일에 이름 사이에 검증을하려고하고, 문제가, 여기에 코드입니다 :SQLite는 오류가 그러한 열 파이썬

username = self.txtUsername.GetValue() 
email = self.txtEmail.GetValue() 
UsernameE = self.conn.execute("SELECT rowid,* FROM tblPlayers WHERE p_Username=" 
    + username) 
EmailU = self.conn.execute("SELECT rowid,* FROM tblPlayers WHERE p_Email=" + email) 

오류 :

> UsernameE = self.conn.execute("SELECT rowid,* FROM tblPlayers WHERE p_Username=" 
     + username) 
sqlite3.OperationalError: no such column: "what i inserted in the username" 
+0

사용 들여 쓰기보다는 역 따옴표. 나는 그것을 바꿀 것이지만 그것은 너무 작아 허용 될 수 없다. – Holloway

답변

1

사용자 이름 값 다음에 견적을 닫지 않았기 때문에 SQL이 잘못되었습니다. 하지만 어쨌든 그런 식으로 일을해서는 안 : 당신이 매개 변수를 사용한다 :

self.conn.execute("SELECT rowid,* FROM tblPlayers WHERE p_Username=? ", (username,)) 

또한 그 값을 반환하지 않습니다 실행 참고 : fetchone()으로 예를 가져올 필요가있다. 사용자 이름에 따옴표를 추가

+0

그것은 작동하지만 사용자 이름과 전자 메일의 값은 0x0316과 비슷합니다 ... 어떻게이 값 뒤에 실제 문자열로 변환합니까? fetchone() 및 fetchall() 사용하여 시도했지만 그 sqlite.connection 얻으려면이 속성이 없습니다 – user3628517

+0

커서 ('cur = self.conn.cursor()') 및 실행 및 fetchone 호출 할 필요가, 연결 개체에 직접 연결하는 것이 아닙니다. –

+0

시도했지만 각 변수의 반환 값은 없음입니다. – user3628517

0

보십시오 : 코드의 블록

UsernameE = self.conn.execute("SELECT rowid,* FROM tblPlayers WHERE p_Username = '" + username + "'")