如何将输入与 SQLite3 表中已有的数据进行比较?

  • 本文关键字:数据 比较 SQLite3 python sqlite
  • 更新时间 :
  • 英文 :


我想将用户输入与表中已有的数据进行比较?

到目前为止,我已经完成了以下代码

db_info = cursor.execute("SELECT * FROM usersTable");
if login_user in db_info:
game()
else:
messagebox.showerror("Invalid Details", "Inputted details are invalid!")

当我运行这个程序时,什么都没发生,所以我不确定哪里出了问题。有人有什么建议吗?

在数据库中查找用户名的常用方法是使用where子句:

db_info = cursor.execute("SELECT * FROM usersTable WHERE username=?",
[login_user]).fetchone()
if db_info is not None:
# check password
game()
else:
messagebox.showerror("Invalid Details", "Inputted details are invalid!")

db_info是一个游标对象,因此此login_user in db_info的计算结果总是为false。

从python sqlite 3 API接口doc:

要在执行SELECT语句后检索数据,您可以将光标视为迭代器,调用光标的fetchone((方法来检索单个匹配行,或者调用fetchall((来获取匹配行的列表。

文档中有很多示例将告诉您如何获取数据,以便构建正确的逻辑测试。

最新更新