chen666-666 commited on
Commit
3822c77
·
verified ·
1 Parent(s): f956d7d

Upload app.py

Browse files
Files changed (1) hide show
  1. app.py +13 -4
app.py CHANGED
@@ -28,17 +28,26 @@ def get_db_connection():
28
 
29
 
30
  def save_to_db(table, data):
31
- conn = None # 确保 conn 在函数开始时就被定义
32
  try:
 
 
 
 
 
33
  conn = get_db_connection()
34
  with conn.cursor() as cursor:
35
- placeholders = ', '.join(['%s'] * len(data))
36
  columns = ', '.join(data.keys())
 
37
  sql = f"INSERT INTO {table} ({columns}) VALUES ({placeholders})"
38
  cursor.execute(sql, list(data.values()))
39
  conn.commit()
40
- except Exception as e:
41
- print(f"数据库写入失败: {e}")
 
 
 
42
  finally:
43
  if conn:
44
  conn.close()
 
28
 
29
 
30
  def save_to_db(table, data):
31
+ conn = None
32
  try:
33
+ # 表名白名单验证
34
+ valid_tables = ["entities", "relations"]
35
+ if table not in valid_tables:
36
+ raise ValueError(f"Invalid table: {table}")
37
+
38
  conn = get_db_connection()
39
  with conn.cursor() as cursor:
40
+ # 使用参数化查询避免注入
41
  columns = ', '.join(data.keys())
42
+ placeholders = ', '.join(['%s'] * len(data))
43
  sql = f"INSERT INTO {table} ({columns}) VALUES ({placeholders})"
44
  cursor.execute(sql, list(data.values()))
45
  conn.commit()
46
+ except pymysql.Error as e: # 细化异常类型
47
+ print(f"数据库错误: {e}")
48
+ conn.rollback()
49
+ except ValueError as e: # 表名无效
50
+ print(f"参数错误: {e}")
51
  finally:
52
  if conn:
53
  conn.close()