在我的控制器中,我有这个方法:
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作为数据库。
答案 0 :(得分:1)
#{@p3}
,但此代码看起来容易受到SQL注入攻击。
答案 1 :(得分:0)
您需要将5 15 1 6 23 8 10 14 11 0 12 24 3 7 16 4 20 25 9 22 2 19 17 18 21 13
变量插入到分配给@p3
的sql字符串中,如下所示:
allparams