2017-10-21 15 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データベースPythonの条件文

答えて

2

私が理解するように、emailはユニークなフィールドです。そして、あなたの質問は1つのレコードか何も返しません(None)。また、パラメータパスのような方法が正しくない(安全でない)

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

使用

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

詳細here

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

を試してみてください。

+0

これは機能します。どうもありがとう。私はパスワードをチェックしたいと思う、それは同じ権利でしょうか? –

+0

@Vincent Lynn歓迎です)はい、同じです。何かのようなもの 'c.execute(" SELECT * FROM Employee WHERE Email =?AND pass =? "、login、pass)' – kvorobiev

+0

非常に役に立ちます。ありがとうございました –