Rails を使用して、動的な列とテーブル名を渡して Postgresql からデータを取得しています。
シェープファイルからインポートされた形状データは、テーブル名と列名の両方が動的であるため、ActiveRecord を使用できません。たとえば、「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インジェクションがないことを確認したい。
誰かがこの問題を解決する方法を教えてもらえますか?