Ошибка, связанная с MariaDB, когда я использую Mysql, discord.py

#python #mysql #discord.py

#python #mysql #discord.py

Вопрос:

Я пытаюсь создать команду для своего бота, в которой, когда я помещаю !p {text}, текст вставляется в базу данных, я использую Mysql, и бот включается, но когда я использую команду, она выдает следующую ошибку.

 discord.ext.commands.errors.CommandInvokeError: Command raised an exception: ProgrammingError: 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '%s)' at line 1
  

Это cmd

 @client.command()
async def p(ctx, *, nam: str = None):
    sql = 'INSERT INTO users (name) VALUES (%s)'
    cursor.execute(sql, (nam))
    await ctx.send(f"inserted {nam}")
  

Ответ №1:

Посмотрите на это https://aiosqlite.omnilib.dev/en/stable/api.html

Вы действительно должны использовать асинхронное кодирование.

Вот пример:

     async with aiosqlite.connect('database_name') as db:
        print("Connection Opened")
        async with db.execute('SELECT object FROM object_table WHERE object_value = ?', (object_value)) as cursor:
            value = await cursor.fetchone()
            value = list(value)
            value = value[0]
        value  = 1
        await db.execute("UPDATE object_table SET object = ? WHERE object_value = ?", (value, object_value))
        await db.commit()
    print("Connection Closed")