如何让 SQL Python 查找用户名是否已在数据库中?

How do I make SQL Python find if a username is already in the database?

这是我第一次使用SQL,我很困惑。我想要 python 检查用户名是否已经在数据库中。例如,有人写 'register' 它将获取他们的用户名并检查他们是否已经存在。我有代码,但它绝对不起作用。它只是检查,什么都不做。

mycursor.execute("""SELECT * FROM TestDatabase WHERE name=%s""", (Username))

我想让它回馈一些东西。喜欢,至少给出一个错误。这样我就可以使用 'try' 东西了。有没有办法从中获得输出? 提前致谢。

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])