[英]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.