如何让 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 中授予相机权限?

如何检查用户是不是已在 ejabberd 服务器中注册或未使用 asmack

如何在 spark sql 的配置单元上下文对象中查找已登录/已连接/当前用户?