使用列表创建安全的 MySQL IN 子句
使用 MySQL 数据库和 Python 时,内爆一个列表以在IN 子句。但是,安全地执行此操作对于防止 SQL 注入漏洞至关重要。
与其手动构造包含值列表的字符串,首选方法是使用查询参数机制。这允许您将列表直接传递给数据库驱动程序,而无需处理任何引用或转义。
以下是实现此目的的方法:
format_strings = ','.join(['%s'] * len(list_of_ids)) cursor.execute("DELETE FROM foo.bar WHERE baz IN (" + format_strings + ")", tuple(list_of_ids))
通过使用此方法,您可以通过允许 MySQL 处理查询的参数化来避免 SQL 注入。数据将直接插入查询中,无需任何预处理,保证安全性和效率。
以上是如何在 Python 中安全地创建带有列表的 MySQL IN 子句?的详细内容。更多信息请关注PHP中文网其他相关文章!