通过传递动态列和表名,我使用Rails从Postgresql获取数据。
我不能使用ActiveRecord,因为从shapefile导入的形状数据是动态的表名和列名。我必须在查询中使用带有列名的双引号,以避免出现这样的问题:例如,"addr:city“。
def find_by_column_and_table(column_name, shape_table_name)
sql = "SELECT \"#{column_name}\" FROM \"#{shape_table_name}\" WHERE \"#{column_name}\" IS NOT NULL"
ActiveRecord::Base.connection.select_one(sql)
end生成sql语句的2个示例:
SELECT "place" FROM "shp_6c998258-32a6-11e0-b34b-080027997e00"
SELECT "addr:province" FROM "shp_6c998258-32a6-11e0-b34b-080027997e00"我想确保查询中没有sql注入。
有人能告诉我如何解决这个问题吗?
发布于 2011-02-11 04:03:12
防止注入、加速查询和捕获错误的推荐方法是使用位置参数或存储过程。更少的是自找麻烦。
https://stackoverflow.com/questions/4965424
复制相似问题