@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. Как решить проблему? Раньше такого небыло
  • Вопрос задан
  • 104 просмотра
Решения вопроса 1
Vindicar
@Vindicar
1. Не генерируй запросы через форматирование строк. Используй placeholders. Начиная со слов "the DB-API’s parameter substitution"
2. Если тебе нужно вставить запись, если её нет, или не делать ничего, если она есть, почитай про INSERT ON CONFLICT DO NOTHING. Ну или про INSERT ON CONFLICT DO UPDATE, если нужно "вставить новую или обновить существующую".
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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