2017-11-29 1 views
0
import sqlite3 

username=input(print("Username?")) 
password=input(print("Password?")) 

connection= sqlite3.connect("Logininfo.db") 
c = connection.cursor() 

IDuser=c.execute('SELECT Username, Password FROM LoginInfo WHERE Username= ? AND Password= ?', (username,password)).fetchone() 

print(IDuser) 

이 코드에서 반환해야하는 데이터는 "Hello1"및 "Password1"입니다 (따옴표 제외). 대신 "('Hello1', 'Password1')"을 출력합니다.SQLite 데이터베이스 쿼리가 잘못된 결과를 반환합니다.

몇 가지 질문은 무엇입니까? 대괄호 및 quotemark없이 데이터를 다시 게시하려면 어떻게해야합니까? "('Hello1',"Hello1 "이됩니다.

코드는 사용자 이름과 암호를 묻기 전에"없음 "을 인쇄합니다 어떻게 고칠 수 있을까요?

+0

게시물 당 한 가지만 질문하십시오. – glibdud

+0

미래의 게시물 주 메뉴 내 사과 – Sepy13

답변

1

첫 번째 질문에 답하기 위해 인용 부호는 문자열이라는 것을 알려줍니다. 실제로 사용자 이름이나 비밀번호의 일부가 아니므로 문제가되지 않아야합니다. 마찬가지로 대괄호는 시퀀스 (특히 튜플)임을 알려줍니다. 파이썬은 두 개의 문자열을 가져와야합니다. 이것이 일반적인 방법입니다. 이 문제로 인해 문제가 발생하면 그 이유를 설명해야합니다.

None은 을 input() 함수 내부로 호출하기 때문에 두 번째 질문에 대답하려면 None이 인쇄됩니다. 의 반환 값은 None입니다. 프롬프트 인쇄는 이미 input()에 필수적이므로이 작업을 수행 할 필요가 없습니다. 그냥 input("Username?")이면 충분합니다.

1

대하여 fetchone()를 하나의 "튜플"또는 검색어 세트 "개체"의 결과, 당신은 많은 배열과 같은 개별 값에 액세스 할 수 있습니다를 반환

시도 인쇄 (IDuser [0]) "Hello1"이 인쇄됩니다.

https://docs.python.org/2/library/sqlite3.html을 참조하고 더 많은 정보를 보려면 fetchone()을 검색하십시오. 영형.

관련 문제