Я делаю небольшой проект, который использует базу данных. Когда пользователь создает учетную запись, мне нужно проверить базу данных, доступно ли имя пользователя.
Мой код выглядит примерно так:
db = mysql.connector.connect(
host = "localhost",
user = "user",
password = "password",
database = "users"
mycursor = db.cursor()
username = input("Username: ")
mycursor.execute("SELECT username FROM users")
for x in mycursor:
if x == username:
print(True)
else:
print(False)
Я видел несколько подобных вопросов, но они либо не связаны с Python, либо не работают у меня, либо я просто их не понимаю.
import mysql.connector
# Connect to the database
db = mysql.connector.connect(
host = "localhost",
user = "user",
password = "password",
database = "users",
)
mycursor = db.cursor()
username = input("Username: ")
# Use SELECT and WHERE to check if it already exists
query = "SELECT username FROM users WHERE username = %s"
mycursor.execute(query, (username,))
# Fetch one result
result = mycursor.fetchone()
# Check if the result is None or not
if result:
print(True) # Username exists
else:
print(False) # Username does not exist
mycursor.close()
db.close()
Это может существенно отличаться от кода в вопросе. Это (при условии, что столбец нечувствителен к регистру, типичный для MySQL) будет искать, например, Fred или FRED, если задан fred.
В вашем коде есть синтаксическая ошибка. Скобка никогда не закрывалась.