【发布时间】:2023-03-14 20:48:01
【问题描述】:
我在对我的 Postgres 数据库中的数组字段执行 where 查询时遇到问题。
在我的 Rails 应用程序中,我有一个名为 People 的表。其中一列称为pets。现在此列包含数组值,即:
["dog", "cat", "fish"]
我想执行一个查询,例如返回所有拥有宠物狗的人。
我目前使用的解决方案看起来是这样的
People.where("\"pets\" @> '{\"" + checkedPet + "\"}'")
其中checkedPet 是一个变量,可以是“狗”或任何其他动物。
这可行,但我觉得很容易受到 SQL 注入问题的影响?
是这样吗?如果是这样,有什么更好、更安全的解决方案来避免它?
【问题讨论】:
标签: sql ruby-on-rails arrays postgresql activerecord