异常:存储MYSQL转义数据保证数据存储的准确性...
2022/1/12 13:03:26
本文主要是介绍异常:存储MYSQL转义数据保证数据存储的准确性...,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
**1、为什么要使用转义?
**
因为在使用MYSQL数据库进行数据存储时,如果出现特殊字符时保存的数据就会发生缺失问题。比如:需要将一个文件路径作为字符串的形式插入到数据库中时,这个字符串中包含特殊字符"/"等字符时保存的字符串就会不完整。
原本需要保存的数据字符串应该是这样的。
image_path = '/usr/load/images/python.jpg'
结果在直接保存到数据库中时真实的数据可能就是下面这样的。
image_path = 'usrloadimagespython.jpg'
因此,专门记录一下这种异常情况的发生,以及如何解决这个问题的发生。
**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
这篇关于异常:存储MYSQL转义数据保证数据存储的准确性...的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-15MySQL教程:初学者必备的MySQL数据库入门指南
- 2024-11-15MySQL教程:初学者必看的MySQL入门指南
- 2024-11-04部署MySQL集群项目实战:新手入门教程
- 2024-11-04如何部署MySQL集群资料:新手入门指南
- 2024-11-02MySQL集群项目实战:新手入门指南
- 2024-11-02初学者指南:部署MySQL集群资料
- 2024-11-01部署MySQL集群教程:新手入门指南
- 2024-11-01如何部署MySQL集群:新手入门教程
- 2024-11-01部署MySQL集群学习:新手入门教程
- 2024-11-01部署MySQL集群入门:新手必读指南