@JustMRZ

Как правильно составить SQL запрос через python для SQLite?

Добрый день. Я не сильно разбираюсь в этой теме поэтому столкнулся с проблемой: при запросе выдается ошибка "sqlite3.OperationalError: near ",": syntax error". У меня есть список list_files в котором есть имя, описание, путь до файла. При нажатии кнопки у меня должна создаваться БД, в которую добавляется вся информация из списка включая картинку, которая записывается в BLOB. Вот мой код, подскажите как это исправить.
if name_bd.get() != "":
		button_create_bd.configure(state = tk.DISABLED)
		with sq.connect(f"{name_bd.get()}.bd") as con:
			cur = con.cursor()
			sql_ex = f"CREATE TABLE IF NOT EXISTS {name_bd.get()} (name TEXT, info TEXT, file BLOB)"
			cur.execute(sql_ex)
			for i in list_files:
				with open(i[2], "rb") as file:
					binary = sq.Binary(file.read())
				sql_ex = f"INSERT INTO {name_bd.get()} VALUES ({i[0]},{i[1]},{[binary]})"
				cur.execute(sql_ex)
	else:
		tmb.showerror("Ошибка", "Имя для БД не выбрано")
  • Вопрос задан
  • 199 просмотров
Решения вопроса 1
@addewyd
как минимум нужны кавычки
'{i[0]}'
а с binary скорее всего только через параметры запроса, так не прокатит
Лучше вообще всё через параметры

f"INSERT INTO {name_bd.get()} VALUES (?,?,?)"
cur.execute(sql_ex, ({i[0]},{i[1]},{[binary]}))
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы