簡體   English   中英

在Rails上使用ruby執行SQL命令時遇到的問題

[英]Facing issues while executing SQL command using ruby on rails

在我的控制器中,我有以下方法:

def show
    @final =final_params
    allparams=''
    ActiveRecord::Base.connection.execute("USE database")
    ActiveRecord::Base.connection.execute("declare @p3 dbo.Params")
    @final.each do |key, value|
      allparams= "insert into @p3 values(N'""#{key}"+"'"++",N'"+"#{value}"+"')\n"
      ActiveRecord::Base.connection.execute(allparams)
    end
  end

但是,我面臨以下錯誤:

TinyTds::Error: Must declare the table variable "@p3".: insert into @p3 values(N'a',N'aa')

在我上面的代碼中, @p3是表名參數。

我正在使用SQL Server作為數據庫。

#{@p3} ,但是此代碼似乎容易受到SQL注入的攻擊。

您需要將@p3變量插值到分配給allparams的sql字符串中,如下所示:

@final.each do |key, value|
  allparams = "insert into #{@p3} values(N'""#{key}"+"'"++",N'"+"#{value}"+"')\n"
  ActiveRecord::Base.connection.execute(allparams)
end

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM