@venera060

Mysql.connector.errors.ProgrammingError: 1054 (42S22): Unknown column ' ' in 'where clause'. Как решить?

функция принимает входящее сообщение:
def check_answer(message):

    db_work = mySQL()

    a = db_work.check_answers(message)
    print(a)
    db_work.close()


отправляем запрос в бд есть ли в таблице такое значение:
def check_answers(self, text):
        self.cursor.execute("SELECT * FROM answers WHERE text = " + str(text))
        data = self.cursor.fetchone()
        return data


на первые 2 числовых запроса она реагирует нормально. на третий агрится.
нужно сделать защиту от дурака:
если пользователь вбивает что-то рандомное, а не значения, которые есть в бд,
data должна просто вернуть 0, None, False. (что угодно)
Но он крашится и пишет что столбец не найден, когда это не столбец а значение в столбце

5fe22a37b4d3d806811379.png
5fe22a19d3790646695870.png
  • Вопрос задан
  • 981 просмотр
Решения вопроса 1
AnatolTh
@AnatolTh
Full Stack Developer
Поправьте
self.cursor.execute("SELECT * FROM answers WHERE text = " + str(text))

на
self.cursor.execute("SELECT * FROM answers WHERE text = '" + str(text) + "'")
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы