mysql_db.py 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. # -*- coding: utf-8 -*-
  2. """
  3. 数据库连接及操作
  4. """
  5. import pymysql
  6. class MysqlHelper:
  7. @classmethod
  8. def connect_mysql(cls):
  9. # 创建一个 Connection 对象,代表了一个数据库连接
  10. connection = pymysql.connect(
  11. host="rm-bp1jjv3jv98133plv285-vpc-rw.mysql.rds.aliyuncs.com", # 数据库IP地址,内网地址
  12. port=3306, # 端口号
  13. user="wx2016_longvideo", # mysql用户名
  14. passwd="wx2016_longvideoP@assword1234", # mysql用户登录密码
  15. db="longvideo", # 数据库名
  16. # 如果数据库里面的文本是utf8编码的,charset指定是utf8
  17. charset="utf8")
  18. return connection
  19. @classmethod
  20. def get_values(cls, sql, params=None):
  21. try:
  22. # 连接数据库
  23. connect = cls.connect_mysql()
  24. # 返回一个 Cursor对象
  25. mysql = connect.cursor()
  26. if params:
  27. # 如果传递了 params 参数
  28. mysql.execute(sql, params)
  29. else:
  30. # 如果没有传递 params 参数
  31. mysql.execute(sql)
  32. # fetchall方法返回的是一个元组,里面每个元素也是元组,代表一行记录
  33. data = mysql.fetchall()
  34. # 关闭数据库连接
  35. connect.close()
  36. # 返回查询结果,元组
  37. return data
  38. except Exception as e:
  39. print(f"get_values异常:{e}\n")
  40. @classmethod
  41. def update_values(cls, sql):
  42. # 连接数据库
  43. connect = cls.connect_mysql()
  44. # 返回一个 Cursor对象
  45. mysql = connect.cursor()
  46. try:
  47. # 执行 sql 语句
  48. res = mysql.execute(sql)
  49. # 注意 一定要commit,否则添加数据不生效
  50. connect.commit()
  51. return res
  52. except Exception as e:
  53. # 发生错误时回滚
  54. connect.rollback()
  55. # 关闭数据库连接
  56. connect.close()