项目场景:
python将含有单引号或者双引号的字符串保存到mysql中
问题描述
给出一个含有单引号的字符串,将其保存到Mysql中会发现错误。
import pymysql
coon = pymysql.connect(
host='localhost',
user='root',
password='*****',
database='testpython',
)
# 使用cursor()方法获取操作游标
cursor = coon.cursor()
s = "Smith's friend"
cursor.execute("insert into demo1 values('%s') " % (s))
coon.commit()
coon.close()
print('保存完成')
出现如下错误:

原因分析:
无法保存,是因为单引号’ 无法保存?想想也不可能。去验证:


可以看到是可以保存单引号的,也能保存双引号。是什么原因导致的呢?
是因为字符串中添加了单引号或者双引号,python在读取过程中会将其进行字符串分割,例如:“Smith’s Friend” 读取到单引号后就会以为是 Smith s Friend两个字符串,从而与你sql语句不相符,出现错误
解决方案:
将含有单引号或者双引号的字符串不进行转义,这样就能将其正常保存到数据中了。
from pymysql.converters import escape_string
s = "Smith's friend"
s = escape_string(s)
当尝试将包含单引号或双引号的字符串插入MySQL时,可能会遇到错误。问题在于Python在处理字符串时,单引号和双引号可能导致SQL语句解析错误。解决方法是使用`pymysql.converters.escape_string`来转义字符串,确保它们能正确保存到数据库中。
2591

被折叠的 条评论
为什么被折叠?



