Как реализовать проверку строки sql на наличие входных данных?
Хочу реализовать систему регистрации и входа в аккаунт, но возникла проблема в проверке таблицы на наличие записей. нужно шаблонно подставить в условия определенные значения, но не могу разобраться как правильно.
try:
check = cur.execute('''SELECT name, password FROM user WHERE name=? password=?''', self.login, self.password)
if check:
pass
except IOError:
pass
Ответы (1 шт):
Автор решения: Alexander Goryushkin
→ Ссылка
Для функции execute на месте аргумента необходимо указывать %s, а не ?.
Аргументы необходимо передавать кортежем или списком.
Но execute не возвращает данные, поэтому после запроса нужно получить их с помощью cur.fetchone() или cur.fetchall().
Таким образом правильный запрос будет выглядеть как:
cur.execute('''SELECT name, password FROM user WHERE name=%s password=%s''', [self.login, self.password])
user = cur.fetchone() # None или кортеж с данными