我完全是初学者 我正在通过mysql-connector软件包使用python连接到mySQL数据库。我已经创建了登录系统,向数据库中添加了数据,但是我无法使用if语句检查用户是否在数据库中。当我通过一个好的用户名和密码时,我得到了elif语句。有人知道代码有什么问题吗?
def OldUser():
mycursor.execute("SELECT * FROM Users")
Users = mycursor.fetchall()
oldusername = input("Username: ")
oldpassword = input("Password: ")
if oldusername and oldpassword == Users:
print("Login was successfully!")
elif oldusername and oldpassword != Users:
print("Something was wrong, log in you again")
答案 0 :(得分:1)
Users变量包含查询返回的所有行。在检查用户名/ pw之前,您需要遍历每一行:
for user in Users:
# Assuming the column order is (username, password)
if oldusername and oldusername == user[0]
print("Login was successfully!")
elif oldusername and oldpassword != user[1]:
print("Something was wrong, log in again")
您还可以通过按用户名过滤来简化查询
def OldUser():
oldusername = input("Username: ")
oldpassword = input("Password: ")
mycursor.execute("SELECT password FROM Users where username = %s", oldusername)
if mycursor.rowcount > 0:
# Check password
row = mycursor.fetchone()
if oldpassword == row[0]
print("Login was successfully!")
else:
# Invalid password
print("Something was wrong, log in again")
else:
# User not found
print("Something was wrong, log in again")
这是一篇可能对您有帮助的文章:http://www.mysqltutorial.org/python-mysql-query/