Я использую 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
2 примера сгенерированного SQL-оператора:
SELECT "place" FROM "shp_6c998258-32a6-11e0-b34b-080027997e00"
SELECT "addr:province" FROM "shp_6c998258-32a6-11e0-b34b-080027997e00"
Я хочу убедиться, что в запросе нет SQL-инъекций.
Может кто-нибудь указать мне, как решить эту проблему?