SQLite3 не может найти значение в столбце!
Это функция для базы данных
class Panda_DataBase:
def __init__(self, db_file):
self.conn = sqlite3.connect(db_file, check_same_thread=False)
self.cursor = self.conn.cursor()
def CheckRegistr(self, UserId):
with self.conn:
result = self.cursor.execute("SELECT * FROM 'PandaDataBase' WHERE 'UserId' = ?",(UserId,)).fetchall()
#СРАВНИВАЕТ ВСЕ ID из базы данных с ID ЧЕЛОВЕКА
print(bool(len(result))) # ВЫДАЁТ FALSE
print(len(result)) # ВЫДАЁТ 0
return bool(len(result))
Функция сверху принимает значение в виде ID пользователя.
Но почему-то когда пользователь с таким ID уже есть в БД "return bool(len(result))" всё равно выдаёт False!!
И дальше по коду добавляет его в БД(я это не вставил)
if not db.CheckRegistr(message.from_user.id):
....
Надеюсь понятно))
Ответы (1 шт):
Автор решения: Roman-Stop RU aggression in UA
→ Ссылка
Уберите кавычки тут 'UserId', т.е. чтоб было без них UserId = ?.
Значение в кавычках это строковый литерал, т.е. вы в условии сравниваете строку UserId (а не значение колонки UserId) с значением, которое передали в функцию. Понятно, что условие не выполняется ни для одной строки, поэтому все строки отсеиваются.