ibaits 中 $ 与 # 及 remapResults的用法

来源:互联网 发布:umeng移动端数据统计 编辑:程序博客网 时间:2024/05/22 06:49

1.#将传进的参数都作为字符串处理(????)。

2.$ 适合 传入表名 或者 动态 sql 语句 或者 order by $column$,这里如果传入动态sql 语句,那么需要设置remapResults = "true"因为动态sql语句,每次返回的列数可能不一样。这样每次查询都会从数据库中重新查询一次,这样有点消耗性能。

3.$ 不能防止sql 注入,因此需要对用户输入的数据进行处理。

4.#能有效的防止sql注入,使用?代表传入的参数,对参数进行了预编译。在执行时,对其进行了优化处理当然包括了过滤敏感字符。在因此能使用#的地方最好使用#。


例:

select * from $a$;  如果传进参数a="t_users",那么sql语句就是select * from t_users;

select * from #a#;  如果传进参数a="t_users",那么sql语句就是select * from “t_users”; 显然会报错
正确的使用# 和 $ 非常重要。

0 0
原创粉丝点击