给出一个含有单引号的字符串,将其保存到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)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)