【发布时间】:2013-05-20 07:10:47
【问题描述】:
我正在使用以下查询来查找最近的位置谷歌地图。它是否对 Sql 注入免疫。如果没有,任何人都可以帮助我摆脱它。
AlphaCourses.find_by_sql("SELECT *,( 6371 * acos( cos( radians( #{@latitude} ) ) * cos( radians( latitude ) ) * cos( radians( longitude ) - radians( #{@longitude} ) ) + sin( radians( #{@latitude} ) ) * sin( radians( latitude ) ) ) ) AS distance FROM alpha_courses HAVING distance <= #{@radius} ORDER BY distance LIMIT 200")
提前致谢。
【问题讨论】:
-
看看这里的第二个例子 - apidock.com/rails/ActiveRecord/Querying/find_by_sql 。避免直接插入属性。
-
感谢您的重播 我试过这样 AlphaCourses.find_by_sql("SELECT *,( 6371 * acos( cos( radians( ? ) ) * cos( radians( latitude ) ) * cos( radians( longitude ) ) - 弧度( ? ) ) + sin( 弧度( ? ) ) * sin( 弧度( latitude ) ) ) ) AS 距离 alpha_courses HAVING distance
-
仔细查看此语法 -
Post.find_by_sql(["SELECT title FROM posts WHERE author = ? AND created > ?", author_id, start_date])。里面的一切都在一个数组中;您将模型的字段替换为?,然后在逗号之后依次写入它们 - 这里 -author_id,start_date -
效果很好 +1 为您提供帮助。非常感谢@kiddorails。
-
很高兴它对您有所帮助。 :)
标签: ruby-on-rails ruby ruby-on-rails-3.2 gmaps4rails