Python pymysql模块
创建数据库表
#!/usr/bin/python3 import pymysql # 打开数据库连接 db = pymysql.connect(host='localhost', user='testuser', password='test123', database='TESTDB') # 使用 cursor() 方法创建一个游标对象 cursor cursor = db.cursor() # 使用 execute() 方法执行 SQL,如果表存在则删除 cursor.execute("DROP TABLE IF EXISTS EMPLOYEE") # 使用预处理语句创建表 sql = """CREATE TABLE EMPLOYEE ( FIRST_NAME CHAR(20) NOT NULL, LAST_NAME CHAR(20), AGE INT, SEX CHAR(1), INCOME FLOAT )""" cursor.execute(sql) # 关闭数据库连接 db.close()
插入添加json数据
import pymysql def insert_sql(sql): eng = pymysql.connect(host='123.56.2.32', user='root', password='123456', port=3306,db = 'my_f') cursor = eng.cursor() cursor.execute(sql) # data = cursor.fetchone() # data = cursor.fetchall()se eng.commit() eng.close() return True import json data=json.dumps({"username":"admin","passwork":"admin"}) print(data) ex_sql="insert into task(data_,name) values ('%s','123456')"%data # json 字段 name 其他字段 insert_sql(ex_sql)
转义方法escape_string
pymysql中有专门的转义方法,导入语法如下:
# v1.0.0及以上 from pymysql.converters import escape_string # v0.10.1及以下 from pymysql import escape_string
注意:v1.0.0及以上请使用from pymysql.converters import escape_string,否则将抛出ImportError: cannot import name 'escape_string' from 'pymysql' (F:\Program Files\Python39\lib\site-packages\pymysql\__init__.py)
异常,详情请查看:PyMySQL/blob/master/CHANGELOG.md#v100
使用时只需要先将特定的字符串进行转义,然后再将转义后的字符串插入到数据库中即可,转义方法使用实例如下:
s = r'D:\视频教程\大数据\【开课吧】廖雪峰 · 2019大数据分析\开课吧介绍' es = escape_string(s)
如果将含有特殊字符\的字符串直接插入到MySQL数据库中,则可能会出现\丢失或者其他问题。
如直接插入 r'D:\视频教程\大数据\【开课吧】廖雪峰 · 2019大数据分析\开课吧介绍' ,则在数据库中实际存储的是 D:视频教程大数据【开课吧】廖雪峰 · 2019大数据分析开课吧介绍 ,而通过escape_string方法转义后再插入到数据库中,则实际存储的效果才是我们想要的。