将列表安全地插入 MySQL IN 子句
本文探讨了一种在 MySQL 数据库中将列表插入到 IN 子句的高效且安全的方法。虽然传统方法是将列表映射到字符串并直接插入,但由于需要手动引用和转义,这种方法存在 SQL 注入的风险。
要避免此漏洞,更安全的方法是使用直接将列表作为 MySQL 查询中的参数。以下代码演示了此方法:
format_strings = ','.join(['%s'] * len(list_of_ids)) cursor.execute("DELETE FROM foo.bar WHERE baz IN (%s)" % format_strings, tuple(list_of_ids))
此代码完成以下任务:
重要的是请注意,此方法依赖于 MySQL 驱动程序安全处理参数的能力。只要数据作为参数正确传递,查询就不会受到 SQL 注入的影响。
以上是如何安全地将列表插入 MySQL IN 子句?的详细内容。更多信息请关注PHP中文网其他相关文章!