【发布时间】:2018-01-10 20:14:17
【问题描述】:
我目前正在为我正在做的项目制作登录系统。我想将用户名作为唯一标识符,并且我想查询该表以确保它尚未被使用。当我打印IdExists 时,即使用户名已在使用中,它也会返回“无”。我有什么方法可以查询数据库然后得到一个真/假或告诉我用户名是否存在的东西?谢谢。
def NameInUse(Username):
cursor.execute('SELECT * FROM Users WHERE UserID =(?)',('%'+Username+'%',))
IdExists=cursor.fetchone()
if IdExists==True:
LoginScrn.addLabel('Error','Username already in use')
return True
else
return False
【问题讨论】:
-
删除
%。 -
为什么不根据用户名索引列?更快的查找并防止重复? sqlitetutorial.net/sqlite-index
-
通过使用 %username% 检查,您可以防止任何人使用属于现有用户名的用户名。即如果我已经注册了用户“Tomas123”,你就不能再注册用户“Tom”了。此外,如果“Tom”已经存在,您应该比较两个大写的用户名以避免注册“tom”、“ToM”等
标签: python database search sqlite