【发布时间】:2014-06-11 02:34:11
【问题描述】:
在编写 Web 应用程序时,我们将使用 SQL 准备而不是连接 SQL 字符串来避免 SQL 注入。例如:
sql.exec("select * from user where user_id=?", user_id)
但是如何在 SQL 中编写准备WHERE...IN?例如:
sql.exec("select * from user where user_id in ?", user_ids)
如果不可能。在这种情况下,避免 SQL 注入的正确方法是什么?
谢谢。
【问题讨论】:
-
也许我不清楚。我不是在问 PHP 的方式。我想知道语言中是否有一些通用的方法支持MySQL驱动。
-
应用程序宿主语言是什么?请注意,大多数驱动程序不支持数组参数,因此基本答案是相同的 - 构造替换变量列表,然后绑定值。
-
@Clockwork-Muse 我现在正在使用 Golang。
-
怎么样:
sql.exec("select * from user where user_id in (?)", "1,2,3,4")?
标签: mysql sql security go prepared-statement