@Grand_Gnilion236

Почему Возникает ошибка о том, что столбца не существует(сам столбец создан)?

И так возникает ошибка о том что таблица user не содержит столбца max_b хотя он определен в таблице, далее прилагаю код(что такое чистый и читабельный код не знаю поэтому извините):
import asyncio
from aiogram.enums import *
from aiogram import *
from aiogram.filters import *
from BOT.token_links import TOKEN
from aiogram.utils.keyboard import InlineKeyboardBuilder
import sqlite3

conn = sqlite3.connect('data_base.db')
curs = conn.cursor()
curs.execute('''
CREATE TABLE IF NOT EXISTS user (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    max_b INTEGER
)
''')
dp = Dispatcher()

@dp.message(Command('start'))
async def start(mess: types.Message):
    builder = InlineKeyboardBuilder()
    builder.add(types.InlineKeyboardButton(
                text='Получить ссылку',
                callback_data='regist'
            ),
            types.InlineKeyboardButton(
                text='Войти по ссылке',
                callback_data='sub'))
    await mess.answer(text='Текст рефералки', reply_markup=builder.as_markup())
count_call = {}
@dp.callback_query(F.data == 'regist')
async def reg(call: types.CallbackQuery):
    user_id = call.from_user.id
    if user_id not in count_call:
        curs.execute('INSERT INTO user (max_b) VALUES(?)', (user_id,))
        conn.commit()
        await call.message.answer(text='Вы записаны на розыгрыш')
    else:
        user_id = call.from_user.id
        if user_id not in count_call:
            curs.execute('INSERT INTO user (max_b) VALUES(?)', (user_id,))
            conn.commit()
        await call.message.answer(text='Вы уже зарегистрированы')
@dp.callback_query(F.data == 'sub')
async def sub(call: types.CallbackQuery):
    await call.message.answer('вы записаны на розыгрыш')
async def counter(mess: types.Message):
    soul_user = mess.from_user.username




async def main():
    bot = Bot(TOKEN, parse_mode=ParseMode.HTML)
    await dp.start_polling(bot)


if __name__ == '__main__':
    asyncio.run(main())
  • Вопрос задан
  • 84 просмотра
Решения вопроса 1
SoreMix
@SoreMix
yellow
Если говорит, что столбца нет - значит его нет.

Что выводит
curs.execute('select * from user')
print([description[0] for description in curs.description])

?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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