@motya_py
Слап

Проблема с БД TG Bot?

Написал бота, и к нему подключил бд, но я что-то не то делаю и когда в боте пишу /start (запускаю бота в тг), база данных ломается, я не особо понимаю как делать подобные запросы.
main.py
@dp.message(CommandStart())
async def start(message: Message):
    if(not user_exist(message.from_user.id)):
        add_user(message.from_user.id)
        await message.answer("Введите предпочитаемое имя: ")
    else:
        await message.answer("Приветуствую", reply_markup=kb.mainMenu)
@dp.message()
async def bot_message(message: Message):
    if (user_signup(message.from_user.id)=='set_nickname'):
        if "@" or '/' in message:
            await message.answer('В имени не должный присутсвтовать следующие знаки: @, /')
        if len(message) > 15:
            await message.answer('Имя не должно превышать 15 символов!')
        else:
            user_add_nickname(message)
            await message.answer(f'Успешно! теперь я буду называть вас{get_name_user}')
    else:
        await message.answer('Не понял(')

db.py
import pymysql
import pymysql.cursors
try:
    con = pymysql.connect(
        host='localhost',
        port=3306, 
        user='root', 
        password='', 
        database='tgbot', 
        charset='utf8mb4', 
        cursorclass=pymysql.cursors.DictCursor
    )
    print("Successfully connected...")
except Exception as ex:
    print("Not connection")
    print(ex)

with con:
    
    cur = con.cursor()
    cur.execute("SELECT VERSION()")
 
    version = cur.fetchone()
    
    print(version)

def add_user(message):
    with con:
        cur = con.cursor()
        cur.execute(f"INSERT INTO 'users' (user_id)  VALUES ({message});")
        cur.execute("INSERT INTO 'users' (signup) VALUES (set_nickname);")
        con.commit()
        

def user_exist(message):
    with con:
        cur = con.cursor()
        cur.execute(f"SELECT * FROM 'users'  WHERE 'user_id' = ({message});")
        con.commit()

def user_signup(message):
    with con:
        cur = con.cursor()
        cur.execute(f"SELECT * FROM 'users' WHERE 'user_id' = ({message}) AND 'signup' = 'set_nickname';")
        con.commit()

def user_add_nickname(message):
    with con:
        cur = con.cursor()
        cur.execute(f"INSERT INTO 'users' (nickname) VALUES ({message}) AND (signup) VALUES (done);")
        con.commit()

def get_name_user(message):
    with con:
        cur = con.cursor()
        cur.execute(f"SELECT 'nickname' FROM 'users' WHERE 'user_id' = ({message});")
        con.commit()

ошибка очень длинная залью на pastebin
https://pastebin.com/dCzmNiRy
  • Вопрос задан
  • 130 просмотров
Решения вопроса 1
@motya_py Автор вопроса
Слап
Случайно зашел на вопрос и нашел свою ошибку
Я использовал не те знаки когда обращался к таблицами, значениям и полям.
Необходимо использовать ``, вместо ' '
Всем пока
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы