2017-10-21 105 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',程序將簡單地要求輸入登錄電子郵件。如果用戶從數據庫輸入正確的電子郵件,則打印該客戶信息如果錯誤,請打印「不」。我不確定我的代碼有什麼問題。有人能幫助我嗎?Sqlite3數據庫Python條件語句

回答

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 =?」,login,pass)' – kvorobiev

+0

非常有幫助。謝謝 –