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方法转义后再插入到数据库中,则实际存储的效果才是我们想要的。