У меня проблема со сравнением ввода пользователя с базой данных уже используемых имен пользователей.База данных работает точно так, как она должна, но то, что кажется простой задачей, оказалось сложнее, чем я думал.Я полагаю, мне не хватает чего-то действительно простого!Я не получаю кодов ошибок из кода, но он не печатает «имя пользователя занято», когда имя пользователя фактически находится в базе данных.
До сих пор я пробовал цикл for для сравнения ввода пользователя с базой данныхЯ попытался составить список имен пользователей в базе данных и перебрать список для сравнения ввода пользователя:
### check to see if the user is already in the database
import mysql.connector
# Database entry
mydb = mysql.connector.connect(
host='Localhost',
port='3306',
user='root',
passwd='passwd',#changed for help
database='pylogin'
)
searchdb = 'SELECT username FROM userpass'
mycursor = mydb.cursor()
mycursor.execute(searchdb)
username = mycursor.fetchall()
print(username)
user = input('username')
for i in username:
if user == username:
print('username is taken')
else:
print("did not work")
Вывод, который не работает:
[('Nate',), ('test',), ('test1',), ('test2',), ('n',), ('test4',)] username: n
('Nate',)
('test',)
('test1',)
('test2',)
('n',)
('test4',)
Я ожидаюприведенный выше код для перебора каждой записи базы данных и сравнения его с вводом пользователя, чтобы убедиться, что имя пользователя еще не занято.Он должен напечатать «имя пользователя взято», вместо этого он печатает «не работает».