SQL语句中的字符串转义

时间:2012-01-19 22:25:57

标签: python sql

我正在尝试执行以下查询:

cursor.execute("SELECT DISTINCT(provider) FROM raw_financials 
                WHERE vendor_id="%s" OR title='%'", (vendor_id, title))

我的问题是标题可以是任何内容,例如它可以是"Hello, Sir", 'Yes' he responded。因此,当我执行上述操作时,我可能会得到一个(错误的)返回值,例如An Elf\\'s Story(会引发SQL错误)。

我如何正确引用SQL语句和标题?

1 个答案:

答案 0 :(得分:5)

不要自己引用;您的数据库驱动程序将为您完成:

cursor.execute("SELECT DISTINCT(provider) FROM raw_financials 
            WHERE vendor_id = %s OR title = %s", (vendor_id, title))

编辑:上面,%s是占位符,用于指示应插入参数(vendor_idtitle)的位置。 MySQLdb使用%s作为占位符,但其他一些驱动程序使用?。您可能需要更改上面的代码才能使用适合您的驱动程序的占位符。