丁云鹏 1 viikko sitten
vanhempi
commit
18e50e7d90
1 muutettua tiedostoa jossa 42 lisäystä ja 21 poistoa
  1. 42 21
      utils/mysql_db.py

+ 42 - 21
utils/mysql_db.py

@@ -44,29 +44,50 @@ class MysqlHelper:
         except Exception as e:
             print(f"get_values异常:{e}\n")
 
-    @classmethod
-    def update_values(cls, sql, params):
-        # 连接数据库
+@classmethod
+def update_values(cls, sql, params=None):
+    """
+    执行更新操作(INSERT/UPDATE/DELETE)
+    
+    参数:
+        sql: 要执行的SQL语句
+        params: SQL参数(可选,元组或字典)
+    
+    返回:
+        成功时返回影响的行数,失败返回None
+    """
+    connect = None
+    cursor = None
+    
+    try:
         connect = cls.connect_mysql()
-        # 返回一个 Cursor对象
-        mysql = connect.cursor()
-        try:
-            # 执行 sql 语句
-            res = mysql.execute(sql, params)
-            # 注意 一定要commit,否则添加数据不生效
-            connect.commit()
-            return res
-        except Exception as e:
-            # 发生错误时回滚
-            logger.error(f"Error executing SQL: {e}")
+        cursor = connect.cursor()
+        
+        # 执行SQL语句
+        if params:
+            affected_rows = cursor.execute(sql, params)
+        else:
+            affected_rows = cursor.execute(sql)
+        
+        connect.commit()
+        return affected_rows
+        
+    except Exception as e:
+        logger.error(f"SQL执行失败: {e}")
+        logger.error(f"SQL语句: {sql}")
+        if params:
+            logger.error(f"参数: {params}")
+        
+        if connect:
             connect.rollback()
-            return None  # 返回 None 表示失败
-        finally:
-            # 确保资源关闭
-            if mysql:
-                mysql.close()
-            if connect:
-                connect.close()
+        return None
+        
+    finally:
+        # 确保资源关闭
+        if cursor:
+            cursor.close()
+        if connect:
+            connect.close()