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

Linda Hamilton
发布: 2024-11-15 04:35:02
原创
225 人浏览过

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板