参数化查询出来防止注入还有其它作用吗?如果我的参数是一个值类型,比如datetime或者int
还做参数化查询那不是没有意义了?
如果是拼接字符串的形式,那么在数据库中执行,有可能会进行多次解析。
给你看个例子
以上两句语句,查询优化器认为是不同的SQL语句,需要解析两次。如果采用绑定变量
@chgtime变量可以传入任何值,这样大量的类似查询可以重用该执行计划了,这可以大大降低数据库解析SQL语句的负担。一次解析,多次重用,是提高数据库效率的原则。
有道理.
主要是防注入 还有就是特殊字符转换问题 例如 单引号
因为如果每个位置参数都要进行特殊处理
在全局上 有隐患还划不来
所以还不如全局处理