#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")