telegram bot python - Обновление данных в БД при прохождении викторины

При обработке ответов пользователей на вопросы викторины должны обновляться данные в БД, но ничего не происходит, не понимаю в чём дело, при этом не выдаётся никакой ошибки, викторина полностью прорешивается, но в БД изменений нет, в результатах как был "0", присвоенный при начале прохождения, так и висит, а хотелось бы, чтобы данные обновлялись, чтобы в конце вывести результат прохождения викторины.

Код обработки ответов на опросы викторины:

@bot.poll_answer_handler()
def poll_answer_handler(quiz_answer: telebot.types.PollAnswer):
result = db_quiz.get_result(quiz_answer.user.id)
answ = db_quiz.get_answer(quiz_answer.user.id, quiz_answer.poll_id)
for r in result:
    if answ == quiz_answer.options_ids[0]:
       r+=1
       db_quiz.results_update(r, quiz_answer.user.id)

Код функций получения результата и его обновления в БД:

#получение результата из БД   
  def get_result(self, user_id):
    with self.connection:
        return self.cursor.execute("SELECT result FROM Quiz_Results WHERE user_id = ?", (user_id,)).fetchall()
#обновление результатов викторины после каждого опроса
  def results_update(self, r, user_id,):
      with self.connection:
        return self.cursor.execute("UPDATE Quiz_Results SET result = ? WHERE user_id = ?", (r, user_id))

Я так понимаю косяк в обработчике ответа на опрос, но я не понимаю в чём именно, подскажите, пожалуйста, в чём допущена ошибка и как её можно было бы исправить.


Ответы (0 шт):