Python字符串 - 奇怪的替换行为

时间:2015-03-09 23:19:43

标签: python mysql string

我有一个函数,我得到一个字符串作为参数。我想将此字符串保存到数据库中。所以我有一个命令:

    sql_command = """INSERT INTO some_table(some_text_row) VALUE (
        '{0}');""".format(some_text)

但参数可以包含'之类的字符。所以我需要替换这种角色。我用这个函数做到了这一点:

    some_text = given_parameter.replace("'", r"\'")

但现在出现了奇怪的行为:有时,我得到\\'的结果,有时我会得到\'的结果。我想要第二个。

为您提供更多信息:given_parameter是网页的HTML代码。我从名为requests

的库中获取HTML代码

有没有人有一些东西?

1 个答案:

答案 0 :(得分:4)

不要使用字符串格式构建查询 - 这是不安全的,您使其易受SQL injections攻击。

相反,参数化查询并让mysql驱动程序担心引号:

sql_command = """
    INSERT INTO 
        some_table(some_text_row) 
    VALUES 
        (%s)"""
cursor.execute(sql_command, (some_text, ))
相关问题