У меня возникли трудности с оператором обновления для MySQL в Python. Я создал класс для выполнения запросов, все мои другие запросы работают, но обновление я мог бы использовать свежую пару глаз.Операция MySQL UPDATE Python
database_handler.sql_post_query_with_args_performed_successfully("UPDATE members SET email ='[email protected]' WHERE id= '%s'",id)
Функция sql_post_query_with_args_performed_successfully возвращает истину, когда он выполняет запрос. Как она стоит этого код возвращает истину, но не обновляет поле коды таблицы для этого здесь: Защиту sql_post_query_with_args_performed_successfully (самость, запрос, арг): с UseDatabase (self.MYSQL_DETAILS) как курсор: попытки: курсора. выполнить (запрос, арг) возвращающие кроме mysql.connector.errors.IntegrityError: вернуть Ложные
эта функция использует «UseDatabase» другого класса whichs обрабатывает подключение и выполнение запросов, здесь ID код для этого:
import mysql.connector
class UseDatabase:
def __init__(self, configuration:dict):
self.config = configuration
def __enter__(self) -> 'cursor':
"""Connect to database and create a DB cursor.
Return the database cursor to the context manager.
"""
self.conn = mysql.connector.connect(**self.config)
self.cursor = self.conn.cursor()
return self.cursor
def __exit__(self, exc_type, exc_value, exc_traceback):
self.cursor.close()
self.conn.commit()
self.conn.close()
'UPDATE members SET email ='[email protected] 'WHERE id =% s' Попробуйте удалить' '' – lad2025
возможно commit или autocommit – Drew
, когда я удаляю «Я получаю следующую ошибку: mysql.connector.errors .ProgrammingError: 1064 (42000): У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии сервера MariaDB, для правильного синтаксиса для использования рядом с «% s» по строке 1 –