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))
Я так понимаю косяк в обработчике ответа на опрос, но я не понимаю в чём именно, подскажите, пожалуйста, в чём допущена ошибка и как её можно было бы исправить.