Что не так с mysql в Openserver 6?
Работаю в VSCode, код на Python. Включил лог запросов к Mysql в OpenServer 6.0.0 Сам запрос к БД корректен. SELECT тоже работает. Но апдейта в БД не происходит. Если скопировать этот запрос из логов и вручную выполнить в Phpmyadmin - все срабатывает. Перезагружать ПК, VSCode и Openserver пробовал, не помогает Апдейчу в поле с типом TEXT, данные - json.dumps(dict) С чем может быть связана данная проблема?
Запрос собирается и выполняется здесь. Думаю, может где-то в этом методе лишняя кавычка где-то ставится и Openserver в логах ее не выводит
def update(self, table:str, data: dict, where: str):
"""
Обновить запись
"""
_query = str()
for k, v in data.items():
if isinstance(v, str):
_query += f"`{k}`='{v}'"
elif isinstance(v, (dict, list)):
_query += f"`{k}`='{json.dumps(v, ensure_ascii=False)}'"
else:
_query += f"`{k}`={str(v)}"
_query += ','
_query = _query[:-1]
query = f"UPDATE {table} SET {_query} WHERE {where}"
self.query(query)
self._cursor.close()
Ответы (1 шт):
ошибка была в собственной непредусмотрительности. проверка на SELECT запрос была такой
if query.upper().find('SELECT') == -1:
self._connection.commit()
вместо
if not query.upper().startswith('SELECT'):
self._connection.commit()
а в query была переменная с названием select, от того коммит и не делался... Спасибо