Как проверить есть ли пользователь в sql таблице?
Пока что код проверки выглядит так:
info_user_to = cursor.execute(""" SELECT * FROM expenses WHERE name IN '%s'""" % (user_to))
If info_user_to:
print('Это имя уже занято.')
else:
print('Ок.')
Каждый раз программа выдаёт ошибку: no such table: <Имя пользователя, который я ввёл>
Ответы (3 шт):
Автор решения: MyNameIsKitsune
→ Ссылка
SELECT * FROM expenses WHERE name='%s'
Если только одно условие, то используй формулировку выше
Оператор IN - это сокращение для нескольких OR или когда нужно несколько WHERE
Автор решения: Alex Titov
→ Ссылка
- =, а не IN, как уже сказано
- Подстановка через ?, чтобы защититься от всяких SQL INJECTIONS, да и вообще удобнее, когда будет больше параметров
- Проверяем, что
rowcountне ноль, а объект результата (это, собственно, сам курсор) возвращается всегда и он всегдаTrue
cursor.execute("SELECT * FROM expenses WHERE name=?", [user_to])
if cursor.rowcount:
Автор решения: kredo403
→ Ссылка
info_user_to = cursor.execute("SELECT * FROM expenses WHERE name = " +
str(user_to)).fetchall()
If len(info_user_to) > 0:
print('Это имя уже занято.')
else:
print('Ок.')