Как сравнить входные данные с данными, которые уже находятся в таблице SQLite3? - PullRequest
0 голосов
/ 30 марта 2020

Я хочу сравнить пользовательский ввод с данными, которые уже есть в таблице?

До сих пор я сделал следующий код

db_info = cursor.execute("SELECT * FROM usersTable");
    if login_user in db_info:
        game()
    else:
        messagebox.showerror("Invalid Details", "Inputted details are invalid!")

Когда я запускаю это, ничего не происходит так Я не уверен, где я ошибся. У кого-нибудь есть предложения?

Ответы [ 2 ]

0 голосов
/ 31 марта 2020

Обычный способ найти имя пользователя в базе данных - использовать предложение where:

db_info = cursor.execute("SELECT * FROM usersTable WHERE username=?",
                         [login_user]).fetchone()

if db_info is not None:
    # check password
    game()
else:
    messagebox.showerror("Invalid Details", "Inputted details are invalid!")
0 голосов
/ 30 марта 2020

db_info является объектом курсора, поэтому это login_user in db_info всегда будет иметь значение false.

Из интерфейса API python sqlite 3 выполните c:

Чтобы получить данные после выполнения оператора SELECT, вы можете либо обработать курсор в качестве итератора вызовите метод fetchone () курсора, чтобы получить одну совпадающую строку, или вызовите fetchall (), чтобы получить список совпадающих строк.

В do есть множество примеров. 1016 *, который сообщит вам, как получить данные, чтобы вы могли построить правильный логический тест.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...