ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

Python pymysql模块

2022-02-03 20:02:19  阅读:273  来源: 互联网

标签:string Python escape pymysql cursor 模块 sql import


 

创建数据库表

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

 

标签:string,Python,escape,pymysql,cursor,模块,sql,import
来源: https://www.cnblogs.com/superbaby11/p/15861899.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有