我正在尝试执行以下查询:
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语句和标题?
答案 0 :(得分:5)
不要自己引用;您的数据库驱动程序将为您完成:
cursor.execute("SELECT DISTINCT(provider) FROM raw_financials
WHERE vendor_id = %s OR title = %s", (vendor_id, title))
编辑:上面,%s
是占位符,用于指示应插入参数(vendor_id
和title
)的位置。 MySQLdb使用%s
作为占位符,但其他一些驱动程序使用?
。您可能需要更改上面的代码才能使用适合您的驱动程序的占位符。