[英]Rails: safe query against stored array
我在對Postgres數據庫中的數組字段執行where查詢時遇到問題。
在我的rails應用程序中,我有一個名為People
的表。 其中的一列稱為pets
。 現在,此列包含數組值,即:
["dog", "cat", "fish"]
我想執行一個查詢,例如返回所有擁有寵物狗的人。
到目前為止,我一直使用的解決方案
People.where("\"pets\" @> '{\"" + checkedPet + "\"}'")
其中checkedPet
是變量,可以是“狗”或任何其他動物。
這可行,但我感覺很容易受到SQL注入問題的影響?
是這樣嗎 如果是這樣,那么有什么更好,更安全的方法來避免這種情況?
根據ActiveRecord和PostgreSQL指南,您可以執行以下操作:
People.where('? = any("pets")', checkedPet)
要么
People.where('"pets" @> ?', "{#{checkedPet}}")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.