我使用Python和MySQLdb下载网页并将其存储到数据库中。我遇到的问题是,我不能将复杂的字符串保存在数据库中,因为它们没有正确转义。
Python中有没有一个函数可以用来对MySQL的字符串进行转义?我尝试使用'''
(三重简单引号)和"""
,但不起作用。我知道PHP有mysql_escape_string()
,Python也有类似的东西吗?
谢谢。
发布于 2010-09-01 18:29:58
conn.escape_string()
请参见MySQL C API函数映射:http://mysql-python.sourceforge.net/MySQLdb.html
发布于 2014-12-20 07:36:35
如果您使用他们的实现来构建一个MySQLdb查询字符串,而不是试图构建您自己的,那么SQL库实际上将为您完成这项工作。
不要这样做:
sql = "INSERT INTO TABLE_A (COL_A,COL_B) VALUES (%s, %s)" % (val1, val2)
cursor.execute(sql)
执行以下操作:
sql = "INSERT INTO TABLE_A (COL_A,COL_B) VALUES (%s, %s)"
cursor.execute(sql, (val1, val2))
发布于 2017-08-03 21:27:50
>>> import MySQLdb
>>> example = r"""I don't like "special" chars ¯\_(ツ)_/¯"""
>>> example
'I don\'t like "special" chars \xc2\xaf\\_(\xe3\x83\x84)_/\xc2\xaf'
>>> MySQLdb.escape_string(example)
'I don\\\'t like \\"special\\" chars \xc2\xaf\\\\_(\xe3\x83\x84)_/\xc2\xaf'
https://stackoverflow.com/questions/3617052
复制相似问题