@toxa_sheben

Почему не работает вставка данных в таблицу через слеш команду?

Моя догадка, что это из за ошибки в написании части с рандомным числом. Прошу поправить код или хотя бы дать наводку, как это исправить. 2ri34gB.png. В таблице: 4 колонки 0aO80W3.png
import disnake
from disnake.ext import commands
from main import connection, cursor
import random
import pymysql


class Idenificator(commands.Cog):
    def __init__(self, bot: commands.Bot):
        self.bot = bot
        @commands.slash_command(description="Отправка запроса на выдачу матов", test_guilds=[1222102533577900112])
        async def new_token(self, inter: disnake.ApplicationCommandInteraction,
                       Имя_Фамилия: str,
                       CID: str):
            try:
                cursor.execute('SELECT * FROM identificator WHERE cid = ?', (CID,))
                existing_user = cursor.fetchone()

                if existing_user:
                    embed = disnake.Embed(title="Ошибка", description="Уже существует жетон зарегистрированнный для этого CID", color=disnake.Color.red())
                    await self.response.send_message(embed=embed)
                    connection.close()
                    return

                check_db = cursor.execute('SELECT * FROM identificator WHERE token = ?', (final_number,))
                number_in_database = cursor.fetchone

                while number_in_database:
                    random_number = random.randint(0, 99999999)
                    formatted_number = f'{random_number:08d}'
                    final_number = f'{formatted_number[:4]}-{formatted_number[4:]}'

                    number_in_database = check_db(final_number)




                cursor.execute('INSERT INTO identificator (nickname, cid, token) VALUES (?, ?, ?)', (Имя_Фамилия, CID, final_number))


                connection.commit()
                connection.close()

                embed = disnake.Embed(title="Жетон успешно создан. Вот ваш жетон", description=f"/do На груди закреплен жетон: [Организация | Звание | {final_number}]", color=disnake.Color.green())
                await self.response.send_message(embed=embed)

            except Exception as e:
                embed = disnake.Embed(title="Ошибка", description=f"Произошла ошибка при выполнении команды: {e}", color=disnake.Color.red())
                await self.response.send_message(embed=embed)

def setup(bot: commands.Bot):
    bot.add_cog(Idenificator(bot))
  • Вопрос задан
  • 88 просмотров
Пригласить эксперта
Ответы на вопрос 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
сheck_db = cursor.execute('SELECT * FROM identificator WHERE token = ?', (final_number,))
Чему равна переменная final_number в этот момент?

check_db(final_number)
Где определена функция check_db?
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
03 мая 2024, в 22:42
1500 руб./в час
03 мая 2024, в 22:22
10000 руб./за проект
03 мая 2024, в 22:18
1000 руб./за проект