params=''
Я буду его передавать в cursor.execute
Как правильно сделать?
def database_query(query: str, params=''):
connect = sql.connect(cfg.DATABASE_PATH, check_same_thread=False)
with connect:
cursor = connect.cursor()
cursor.execute(query, params) #«««««««««««««
result = cursor.fetchall()
if connect:
connect.commit()
connect.close()
else:
log.error('Disconnect database connections')
log.info(f'Result {result}\n\tQuery <{query}>')
return result
Params должен быть тупл
Зачем тебе эта функция? Выглядит как очень опасная вещь
Чтоб не повторять этот код везде, когда хочу обратиться к базе
Не знаю, может это мои замашки из C#
1. нафига check_same_thread=False?
А если тебе надо будет сделать два запроса подряд в одной транзакции?
Эт забей, уберу
эм... значит и на C# ты пишешь хуевый код.
Не обсирай Я сейчас пытаюсь логику опробовать Python
А почему, кстати?
Я напишу класс нормально позже под всё
ну вот выше аргумент 1. ты хочешь выполнить несколько запросов в одном подключении \ транзакции.
Я для этого не буду создавать коннект постоянно, а только коммитить и то, если будут измениния в таблиицей
Это согласен. А почему опасная?
еще и никакой обработки ошибок. это прекрасно.
например если connect.commit() выбросит исключение, твое подключение будет закрыто неизвестно когда.
Они будут, я только начал делать
а на счет params сфигали там строка?
Там уже None
А там разве with не закроет всё до коммита ещё?
ой... там еще и with, который я не заметил. еще лучше.
Обсуждают сегодня