急啊,sp_executesql不能处理单引号吗
听说sp_executesql是参数化传值的,可以避免注入,可是我如下的语句
- SQL code
SET @sql=N'update Dos set '+@column+'=1 where ip='+CHAR(39)+@ip+CHAR(39)EXEC sp_executesql @sql,N'@column VARCHAR(10),@ip VARCHAR(30)',@column,@ip
我把这个@IP赋值 为 s' 就报错了,什么引号不完整,不是说是参数化传的吗,为啥还变成拼接似的呢?
[解决办法]
可以的,如果字符串里本身有单引号,那么用两个单引号表示一个单引号,即把'改为''