Задать вопрос
@Olkimn

SQL как исправить ошибку?

for guild in bot.guilds:
		for member in guild.members:
			if cursor.execute(f"SELECT id FROM users WHERE id = {member.id} AND server_id = {guild.id}").fetchone() is None:
				cursor.execute(f"INSERT INTO users VALUES ('{member}', {member.id},0,0,{guild.id})")
				

			else:
				pass
	connection.commit()


Вызвает ошибку: line 59, in on_ready
cursor.execute(f"INSERT INTO users VALUES ('{member}', '{member.id}',0,0,'{guild.id}')")
sqlite3.OperationalError: near "t": syntax error. Как решить проблему? Раньше такого небыло
  • Вопрос задан
  • 111 просмотров
Подписаться 1 Простой 2 комментария
Решения вопроса 1
Vindicar
@Vindicar
RTFM!
1. Не генерируй запросы через форматирование строк. Используй placeholders. Начиная со слов "the DB-API’s parameter substitution"
2. Если тебе нужно вставить запись, если её нет, или не делать ничего, если она есть, почитай про INSERT ON CONFLICT DO NOTHING. Ну или про INSERT ON CONFLICT DO UPDATE, если нужно "вставить новую или обновить существующую".
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
19 дек. 2024, в 02:11
15000 руб./за проект
19 дек. 2024, в 02:09
11000 руб./за проект
19 дек. 2024, в 00:46
30000 руб./за проект