首页 >后端开发 >Python教程 >如何在 MySQL IN 子句中安全地使用 ID 列表?

如何在 MySQL IN 子句中安全地使用 ID 列表?

Linda Hamilton
Linda Hamilton原创
2024-11-15 04:35:02348浏览

How Can I Safely Use a List of IDs in a MySQL IN Clause?

安全 MySQL IN 子句的内爆列表

要安全地在 MySQL IN 子句中使用 ID 列表并避免 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的驱动程序,确保它被正确转义并防止注入。
  • 简单性:你不需要执行手动引用或转义,这简化了代码并降低了错误风险。
  • 性能:参数化通常比内爆列表和手动转义它们更有效。

请注意,数据作为值元组传递,这在 MySQL 查询中使用是安全的。 format_strings 变量为参数创建一个以逗号分隔的占位符列表。

以上是如何在 MySQL IN 子句中安全地使用 ID 列表?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn