安装
pip install PyMySQL
连接
db = pymysql.connect(host="192.168.1.1", port=3306, user="root", password="password", database="database_name")
cursor = db.cursor()
查/增
sql_insert = """
INSERT INTO 表名(id, name, path)
VALUES (%s, %s, %s)
"""
# 无论数据库数据类型为int或date,全部使用py的字符串形式插入,所以使用%s
cursor.execute(sql_insert, (user_id, name, path)) # 这种可以有效避免因敏感字符而导致出现语法错误
db.commit() # 进行提交,否则无效
# 当数据源为http相关时,注意转义
import html
from pymysql.converters import escape_string
safe_data = escape_string(html.unescape(unsafe_data)) # unescape转义html字符,escape转义为可直接插入数据库的安全字符串
# 多数据一次插入
cursor.executemany(sql, info) # info可为list,循环按顺序进行插入
db.commit()
以及
因为图库已经快20g了,为了管理方便,顺便就上了mysql做数据管理,但有个问题,pymysql非异步,可能会造成bot的io堵塞,现在的数据量查询速度还算快,但要是时间久了就不一定;
另外,pymysql非异步,但bot中的操作是安全的,暂时不存在两个及以上的模块对mysql进行操作。
2021-11更新
另一个插件也上了数据库作查重,用一个pymysql实例对象的调用来实现的,到目前为止没有出现问题