Почему не происходит запись в БД?

Рейтинг: 0Ответов: 0Опубликовано: 27.06.2023

Всех приветствую. Пару лет назад писал бота на python, добавлял запись в бд при нажатии кнопки 'start' Сейчас понадобился данный функционал, скопировал но бот не запускается. Помогите решить проблему.


import telebot
import sqlite3
import const

from sqlite3 import Error
from telebot import types

bot = telebot.TeleBot(const.token)

with sqlite3.connect('my.db') as db:

def create_tables():
    users_query = '''CREATE TABLE IF NOT EXISTS USERS
                        (user_id INTEGER PRIMARY KEY NOT NULL,
                        username TEXT,
                        first_name TEXT,
                        last_name TEXT,
                        reg_date TEXT);'''
    post_sql_query(users_query)



def register_user(user, username, first_name, last_name):
    user_check_query = f'SELECT * FROM USERS WHERE user_id = {user};'
    user_check_data = post_sql_query(user_check_query)
    if not user_check_data:
        insert_to_db_query = f'INSERT INTO USERS (user_id, username, first_name,  last_name, reg_date) VALUES ({user}, "{username}", "{first_name}", "{last_name}", "{ctime()}");'
        post_sql_query(insert_to_db_query )



def post_sql_query(sql_query):
    with sqlite3.connect('my.db') as connection:
        cursor = connection.cursor()
        try:
            cursor.execute(sql_query)
        except Error:
            pass
        result = cursor.fetchall()
        return result

create_tables()




@bot.message_handler(commands=['start'])
def startpg(message):
    startmenu = types.ReplyKeyboardMarkup(True, False)
    startmenu.row('qq', 'qq')
    startmenu.row('qq', 'qq')
    startmenu.row('qq', 'qq')
    startmenu.row('qq', '2 страница')
    register_user(message.from_user.id, message.from_user.username,
                  message.from_user.first_name, message.from_user.last_name)
    bot.send_message(message.from_user.id, f' Привет {message.from_user.first_name}  я  qq 🤖 ', reply_markup=startmenu)
    

Ответы

Ответов пока нет.