安装

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实例对象的调用来实现的,到目前为止没有出现问题