你是说向数据库中插入一个长字符串吧?
比如:isnert into tablename values(xx,xx,'xx')
比如我们的‘xx’是一个文本,那么如果用参数写的话就是
insert into tablename values(xx,xx,@string)
也就是说你的@string,无论你输入什么进去他都会变成一个‘’括起来的字符串对原数据库语句是没有任何影响的。
比如@string的值是‘xx’)where (列名 =xx 时如果用字符串的拼接的话就会组成一个新的数据库查询语句
insert into tablename values(xx,xx,xx)where (列名=xx),如果用参数的话
就会是insert into tablename values(xx,xx,‘xx)where (列名=xx’),所以会把数据直接存入表中。而不会发生数据注入的情况。
如果你对参数传入数据还不放心的话可以写存储过程,那样更具效率,且不存在注入攻击漏洞。{:soso_e100:}
|