如何让 SQL Python 查找用户名是不是已在数据库中?
Posted
技术标签:
【中文标题】如何让 SQL Python 查找用户名是不是已在数据库中?【英文标题】:How do I make SQL Python find if a username is already in the database?如何让 SQL Python 查找用户名是否已在数据库中? 【发布时间】:2021-05-01 02:00:52 【问题描述】:这是我第一次使用 SQL,我很困惑。我希望 python 检查用户名是否已经在数据库中。例如,有人写了“注册”,它将获取他们的用户名并检查他们是否已经存在。我有代码,但它肯定不起作用。它只是检查,什么都不做。
mycursor.execute("""SELECT * FROM TestDatabase WHERE name=%s""", (Username))
我希望它回馈一些东西。就像,至少给出一个错误。这样我就可以使用“尝试”的东西。有没有办法从中获得输出? 提前致谢。
【问题讨论】:
如果你使用像 sql alchemy 这样的 ORM 会更容易 mycursor.fetchall() 贾斯汀·埃泽奎尔,它奏效了。我使用“尝试”来消除任何预期的错误,然后一切正常。我就是关不掉这个帖子。我建议您将此评论作为答案,以便我标记它。 【参考方案1】:mycursor.execute
本身只准备和执行查询,但它不会为您提供结果。
要获得结果,您必须使用光标的其中一种获取方法,例如fetchone()
、fetchmany()
或fetchall()
。
例子:
mycursor.execute("""SELECT * FROM TestDatabase WHERE name=%s""", (Username,))
rows = mycursor.fetchall()
然后你可以查看rows
。
您可以在此处找到有关游标方法的更多信息:
https://www.python.org/dev/peps/pep-0249/
跟进:
请注意,参数必须是可迭代的,例如元组或列表,即使您只向光标传递一个参数。
这将失败:
mycursor.execute("""SELECT * FROM TestDatabase WHERE name=%s""", (Username))
要使其成为元组,请在用户名后添加 ,
:
mycursor.execute("""SELECT * FROM TestDatabase WHERE name=%s""", (Username,))
或将其列在列表中:
mycursor.execute("""SELECT * FROM TestDatabase WHERE name=%s""", [Username])
【讨论】:
它工作正常,但现在我不断收到错误“无法处理参数”以上是关于如何让 SQL Python 查找用户名是不是已在数据库中?的主要内容,如果未能解决你的问题,请参考以下文章
如何在调用之前检查 Java Web 服务是不是已在 PL/SQL 中启动并运行
如何检查用户 JID 是不是已在 XMPPFrameWork 中使用
如何检查用户是不是已在 React Native Android 中授予相机权限?