2024-04-19 19:13:21 发布
网友
我使用Python和MySQLdb下载网页并将它们存储到数据库中。我遇到的问题是无法将复杂字符串保存到数据库中,因为它们没有正确转义。
Python中是否有一个函数可以用来转义MySQL的字符串?我试过用'''(三重简单引号)和""",但没有成功。我知道PHP有mysql_escape_string(),Python中有类似的东西吗?
'''
"""
mysql_escape_string()
谢谢。
conn.escape_string()
参见MySQL C API函数映射:http://mysql-python.sourceforge.net/MySQLdb.html
如果您使用MySQLdb库的实现来构建SQL查询字符串,而不是试图构建自己的查询字符串,那么MySQLdb库实际上会为您这样做。
不要这样做:
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))
>>> 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'
参见MySQL C API函数映射:http://mysql-python.sourceforge.net/MySQLdb.html
如果您使用MySQLdb库的实现来构建SQL查询字符串,而不是试图构建自己的查询字符串,那么MySQLdb库实际上会为您这样做。
不要这样做:
做:
相关问题 更多 >
编程相关推荐