1.将字符串中的引号全加上转义符
将data变为下面的形式,再插入数据库就正确了
Hello\'World\"!
具体在python中的转义函数如下:
def transferContent(self, content):
if content is None:
return None
else:
string = ""
for c in content:
if c == '"':
string += '\\\"'
elif c == "'":
string += "\\\'"
elif c == "\\":
string += "\\\\"
else:
string += c
return string
要加三个\,这是因为\\会在函数中转义为\,\'会转义成',两者合起来才能在字符串中留下 \',然后sql读取后才能识别这是转义
注意,\本身也需要转义,否则如果原本字符串中为\',只转义'就会变成\\\\',结果是\\\\相互抵消,只剩下'
在python中,下面两种写法是一样的
a=" ' "
a=" \' "
2.使用MySQLdb.escape_string()函数转义
sql = "insert into tb (my_str) values('%s')" % (MySQLdb.escape_string(data))
cursor.execute(sql)
3.将str字符串转化为bytes类型
from urllib import parse
neirong = parse.quote(neirong)
'''
将html转化为bytes类型的字符串
反解用parse.unquote()
'''
4.可以使用加密方式加密字符串,hashlib
自用方法3