异常:存储MYSQL转义数据保证数据存储的准确性

因此,专门记录一下这种异常情况的发生,以及如何解决这个问题的发生。

*2、如何使用转义的方式解决这个问题? *

在pymysql的模块中专门提供一个函数来解决这个问题,那就是escape_string()函数。

使用时直接使用escape_string()函数将需要转义的字符串作为参数传递,返回结果就是我们需要的正确的字符串。

下面这个功能就是使用pymsql的模块做了一个数据的插入功能,先导入需要的模块或函数对象。

import pymysql # MYSQL数据库操作库

import logging # 日志处理库

logger = logging.getLogger(“数据库日志”) # 设置日志名称

logger.setLevel(logging.DEBUG) # 设置日志级别

def get_conn():

‘’’

连接数据库函数

:return:

‘’’

logger.info(“开始数据库连接”)

coon = pymysql.connect(host=‘127.0.0.1’,

user=‘root’,

password=‘root’,

database=‘data’)

logger.info(“完成数据库连接”)

return coon

编写保存数据的函数用于数据列表新增功能实现。

def insert_data():

‘’’

数据库插入记录函数

:return:

‘’’

logger.info(“开始数据保存”)

id = input(‘数据序号’)

id = int(id)

boc_image_path = str(input(‘图片地址’))

logger.debug(“获取数据库连接…”)

connection = get_conn()

logger.debug(“已经得到数据库连接”)

cursor = connection.cursor()

from pymysql.converters import escape_string

logger.debug(“保存数据时对包含特殊字符的字符串进行转义处理操作”)

sql = “insert into boc(id_,boc_image_path) values(‘%d’,‘%s’)” % (

id, escape_string(boc_image_path)) # 这里执行数据插入图片地址boc_image_path字符串时,使用boc_image_path()函数进
行了转义

try:

cursor.execute(sql)

connection.commit()

logger.info(“完成数据保存”)

except:

logger.error(“数据保存发生异常,执行回滚操作”)

connection.rollback()

connection.close()

*3、使用escape_string()函数转义时会有什么问题? *

这里有一个高版本和低版本的区别,由于版本的不同escape_string()函数存在的地方也有差别。

在pymsql的版本低于0.10.1版本时使用下面这种方式进行导入。

from pymysql import escape_string

在pymysql的版本高于0.10.1版本使用pymysql.converters模块下escape_string,我现在使用的就是0.16的版本进行操作的。

from pymysql.converters import escape_string

file

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值