20two_may
@20two_may

Почему функция не работает?

Создал таблицу clans со столбцами clan_name и owner_id. После того как ввожу команду, весь @client.command работает исправно до строки заполнения столбцов clan_name и owner_id.

Код команды ccreate:
@client.command()
async def ccreate(ctx, cname : str = None):
	if cname is None:
		print(f'{ctx.author.name}, укажите название вашего клана')
	else:
		if 5 > cursor.execute("SELECT cash FROM users WHERE id = {}".format(ctx.author.id)).fetchone()[0]:
			print(f"[CISCORD.ссreate] {ctx.author.name}, у вас недостаточно коинов для создания клана")
		else:
			cursor.execute("UPDATE users SET cash = cash - 5 WHERE id = {}".format(ctx.author.id))
			cursor.execute("INSERT INTO clans VALUES ({}, {})".format(ctx.author.id, cname))
			connection.commit()
			print(cursor.execute("SELECT clan_name from clans").fetchall())
			print(cursor.execute("SELECT owner_id from clans").fetchall())
	await asyncio.sleep(3)
	await ctx.message.delete()

5f15f152c8e8c995761863.png
*Полная ошибка на скриншоте
  • Вопрос задан
  • 131 просмотр
Решения вопроса 1
shurshur
@shurshur
Сисадмин, просто сисадмин...
Правильно так:

cursor.execute("INSERT INTO clans VALUES (?, ?)", (ctx.author.id, cname))


Очевидно же, что запрос INSERT INTO clans VALUES (123, ee) не будет работать из-за отсутствия кавычек вокруг ee.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
SoreMix
@SoreMix Куратор тега Python
yellow
Посмотрите пример синтаксиса
https://www.sqlitetutorial.net/sqlite-python/insert/
Ответ написан
Ваш ответ на вопрос

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

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