Sqlite3数据库是Python条件语句

时间:2017-10-21 20:36:42

标签: python sqlite conditional

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”,程序将只是要求输入登录电子邮件。如果用户从数据库中键入正确的电子邮件,则打印该客户信如果错了,打印'不'。我不确定我的代码有什么问题。有人能帮帮我吗?

1 个答案:

答案 0 :(得分: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