正在从用户提供的未知行数的 CSV 文件中读取数据。我遍历行,而不是单独将每一行单独插入数据库(可能会损害大量插入的性能),我将这些值连接成一个字符串:
insert_values += ", (#{params[:quantity]}, #{'#{params[:name]}', '#{Time.now.to_s(:db)}')"
然后我构建完整的 sql 查询:
sql = "INSERT INTO `my_table` (`quantity`, `name`, `created_at`) VALUES"+insert_values
最后,我执行它:
ActiveRecord::Base.connection.execute(sql)
我想让数据免受恶意注入。做这个的最好方式是什么?