这是一个类似的解决方案,我认为在SQL中建立%s字符串列表更有效:
list_of_ids直接使用:format_strings = ','.join(['%s'] * len(list_of_ids))cursor.execute("DELETe FROM foo.bar WHERe baz IN (%s)" % format_strings, tuple(list_of_ids))这样,您就不必引用自己的报价,并避免各种SQL注入。
请注意,数据(
list_of_ids)作为参数直接进入mysql的驱动程序(不在查询文本中),因此没有注入。您可以在字符串中保留所需的任何字符,而无需删除或引用字符。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)