Python字符串-奇怪的替换行为
我有一个函数,其中我得到一个字符串作为参数。我想将此字符串保存到数据库中。所以我有一个命令,比如:Python字符串-奇怪的替换行为,python,mysql,string,Python,Mysql,String,我有一个函数,其中我得到一个字符串作为参数。我想将此字符串保存到数据库中。所以我有一个命令,比如: sql_command = """INSERT INTO some_table(some_text_row) VALUE ( '{0}');""".format(some_text) 但是参数可以包含类似于“的字符。所以我需要替换这类字符。我使用此函数执行此操作: some_text = given_parameter.replace("'", r"\'") 但
sql_command = """INSERT INTO some_table(some_text_row) VALUE (
'{0}');""".format(some_text)
但是参数可以包含类似于“
的字符。所以我需要替换这类字符。我使用此函数执行此操作:
some_text = given_parameter.replace("'", r"\'")
但现在出现了奇怪的行为:有时,我得到的结果是\\'
,有时我得到的结果是\'
。我想要第二个
为您提供更多信息:gived_参数
是网页的HTML代码。我从名为requests
有人有一些TIPP吗?不要使用字符串格式构造查询-这是不安全的,您会使它容易受到攻击 相反,参数化查询,让mysql驱动程序担心引号:
sql_command = """
INSERT INTO
some_table(some_text_row)
VALUES
(%s)"""
cursor.execute(sql_command, (some_text, ))
不要使用字符串格式构造查询-这是不安全的,您使其容易受到攻击 相反,参数化查询,让mysql驱动程序担心引号:
sql_command = """
INSERT INTO
some_table(some_text_row)
VALUES
(%s)"""
cursor.execute(sql_command, (some_text, ))
FWIW,通常您不想在sql_命令中执行自己的字符串插值——这可能会让您对FWIW敞开心扉,通常您不想在sql_命令中执行自己的字符串插值——这可能会让您对感谢敞开心扉。这就是解决办法,谢谢。这就是解决办法。