gpt4 book ai didi

ruby-on-rails - Rails LIKE 查询不起作用

转载 作者:行者123 更新时间:2023-12-02 17:39:13 26 4
gpt4 key购买 nike

这可以正常工作,并返回正确的结果:

query = params[:query].downcase
users = User.find(:all, :conditions => ['username LIKE ?', "%#{query}%"])

但是,我认为这是不安全的,因为它容易受到 SQL 注入(inject)攻击?

所以我试着这样做:

users = User.all(:conditions => ["username LIKE ?", query])

甚至

users = User.where("username LIKE ?", query)

但是这两个都没有返回任何结果。

正确的做法是什么?

编辑:这有效:

users = User.where("username LIKE ?", "%#{query}%")

但是根据 Rails 文档:

enter image description here

最佳答案

您在查询的替代尝试中缺少百分比符号:

query = "%thing_to_find%"
users = User.all(:conditions => ["username LIKE ?", query])

-或-

query = "%thing_to_find%"
users = User.where("username LIKE ?", query)

但是话虽如此,您的第一个示例不会受到 SQL 注入(inject)的影响。事实上,您的所有三个示例都是 AOK!

关于ruby-on-rails - Rails LIKE 查询不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22845335/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com