增加日志
This commit is contained in:
49
lib/db.py
49
lib/db.py
@@ -3,6 +3,7 @@
|
||||
"""
|
||||
import pymysql
|
||||
from contextlib import contextmanager
|
||||
from lib.logger import log_info, log_error, log_warning
|
||||
|
||||
# 数据库配置
|
||||
DB_CONFIG = {
|
||||
@@ -23,32 +24,52 @@ DB_CONFIG = {
|
||||
@contextmanager
|
||||
def get_connection():
|
||||
"""获取数据库连接(上下文管理器)"""
|
||||
conn = pymysql.connect(**DB_CONFIG)
|
||||
try:
|
||||
conn = pymysql.connect(**DB_CONFIG)
|
||||
yield conn
|
||||
except pymysql.Error as e:
|
||||
log_error(f'数据库连接失败: {e}', 'db')
|
||||
raise
|
||||
finally:
|
||||
conn.close()
|
||||
try:
|
||||
conn.close()
|
||||
except:
|
||||
pass
|
||||
|
||||
|
||||
def execute_query(sql, params=None):
|
||||
"""执行查询并返回结果"""
|
||||
with get_connection() as conn:
|
||||
with conn.cursor() as cursor:
|
||||
cursor.execute(sql, params)
|
||||
return cursor.fetchall()
|
||||
try:
|
||||
with get_connection() as conn:
|
||||
with conn.cursor() as cursor:
|
||||
cursor.execute(sql, params)
|
||||
result = cursor.fetchall()
|
||||
return result
|
||||
except Exception as e:
|
||||
log_error(f'查询失败: {e}\nSQL: {sql}\nParams: {params}', 'db')
|
||||
raise
|
||||
|
||||
|
||||
def execute_update(sql, params=None):
|
||||
"""执行更新操作"""
|
||||
with get_connection() as conn:
|
||||
with conn.cursor() as cursor:
|
||||
cursor.execute(sql, params)
|
||||
return cursor.rowcount
|
||||
try:
|
||||
with get_connection() as conn:
|
||||
with conn.cursor() as cursor:
|
||||
affected = cursor.execute(sql, params)
|
||||
return cursor.rowcount
|
||||
except Exception as e:
|
||||
log_error(f'更新失败: {e}\nSQL: {sql}\nParams: {params}', 'db')
|
||||
raise
|
||||
|
||||
|
||||
def execute_insert(sql, params=None):
|
||||
"""执行插入操作并返回插入ID"""
|
||||
with get_connection() as conn:
|
||||
with conn.cursor() as cursor:
|
||||
cursor.execute(sql, params)
|
||||
return cursor.lastrowid
|
||||
try:
|
||||
with get_connection() as conn:
|
||||
with conn.cursor() as cursor:
|
||||
cursor.execute(sql, params)
|
||||
last_id = cursor.lastrowid
|
||||
return last_id
|
||||
except Exception as e:
|
||||
log_error(f'插入失败: {e}\nSQL: {sql}\nParams: {params}', 'db')
|
||||
raise
|
||||
Reference in New Issue
Block a user