Почему ошибка в sql запросе sqllite3
def users_exist(self, user_id):
with self.connection:
result = self.cursor.execute("SELECT * FROM 'users' WHERE 'user_id = ?'", (user_id, )).fetchall()
return bool(len(result))
Вот текст ошибки: Incorrect number of bindings supplied. The current statement uses 0, and there are 1 supplied. Пытался пофиксить сам, но не получилось
Ответы (1 шт):
Автор решения: SwaD
→ Ссылка
Должно быть так
def users_exist(self, user_id):
with self.connection:
result = self.cursor.execute("SELECT * FROM users WHERE user_id = ?", (user_id)).fetchall()
return bool(len(result))
Таблицы и поля выделять кавычками нельзя. В кавычки заключаются только строковые значения. Если строковое значение является строкой, оборачивать ? в запросе не надо, это сделает библиотека базы данных.
Текст запроса должен быть точно такой же, как если бы он выполняется в самой БД. Для проверки, сначала пишите запрос в БД, потом переносите его в код.