2017-10-21 13 views
1
import sqlite3 
conn = sqlite3.connect('LeVinEmployee.db') 
profile = input("Are you a user? y/n: ") 
if profile == 'y': 
    login = input("Enter login name: ") 
    #passw = input("Enter password: ") 
    c = conn.cursor() 
    c.execute("SELECT * FROM Employee WHERE Email = '" + login + "'") 
    result = c.fetchone() 
    if result[0] == 1: 
     print(c.fetchall()) 
    else: 
     print("not") 

else: 
    print("You are not a user") 

여기서 내가하려는 것은 꽤 간단합니다. 사용자 로그인 기능을 만들려고합니다. 사용자가 'y'를 입력하면 프로그램은 로그인 이메일을 입력하도록 요청합니다. 사용자가 데이터베이스에서 정확한 전자 메일을 입력하면 해당 고객 정보를 인쇄하십시오. 틀린 경우 'not'를 인쇄하십시오. 내 코드가 무엇이 잘못되었는지 잘 모르겠습니다. 누군가 나를 기쁘게 도와 줄 수 있습니까?Sqlite3 데이터베이스 파이썬 조건문

답변

2

이해 하시겠지만, email은 고유 한 필드입니다. 그리고 귀하의 질의는 하나의 레코드 또는 아무것도 반환하지 않을 수도 있습니다 (None). 또한

result = c.fetchone() 
if result: # result could be None or tuple (record) 
    print(result) 
else: 
    print("not") 

시도 파라미터 패스 같은 방법

c.execute("SELECT * FROM Employee WHERE Email = '" + login + "'") 

사용

c.execute("SELECT * FROM Employee WHERE Email=?", login) 

추가 정보를 잘못 here (불안정)이다.

+0

작동합니다. 고마워. 내가 암호를 확인하고 싶다면, 똑같을거야? –

+0

@ Vincent Lynn 당신은 환영합니다.) 예, 동일 할 것입니다. 뭔가가 ~ 'c.execute ("SELECT * FROM Employee WHERE Email =? AND pass =?", 로그인, 패스)' – kvorobiev

+0

매우 유용합니다. 고맙습니다 –