#和$的区别


本文摘自PHP中文网,作者V,侵删。

他们之间的区别用最直接的话来说就是:#相当于对数据 加上 双引号,$相当于直接显示数据。

1、#对传入的参数视为字符串,也就是它会预编译

1

select * from user where name = #{name}

比如我传一个csdn,那么传过来就是

1

select * from user where name = 'csdn'

2、$将不会将传入的值进行预编译

1

select * from user where name=${name}

比如我穿一个csdn,那么传过来就是

1

select * from user where name=csdn

3、#的优势就在于它能很大程度的防止sql注入,而$则不行。

比如:用户进行一个登录操作,后台sql验证式样的:

1

select * from user where username=#{name} and password = #{pwd}

如果前台传来的用户名是“wang”,密码是 “1 or 1=1”,用#的方式就不会出现sql注入,而如果换成$方式,sql语句就变成了

1

select * from user where username=wang and password = 1 or 1=1

这样的话就形成了sql注入。

4、MyBatis排序时使用order by 动态参数时需要注意,用$而不是#。

推荐教程:mysql教程

以上就是#和$的区别的详细内容,更多文章请关注木庄网络博客

相关阅读 >>

主键和唯一索引的有什么区别

mysql和sql是什么?mysql和sql之间的区别有哪些

mysql中普通索引和唯一索引的区别详解

mysql两种引擎的有什么区别

sql语句中on和where的用法区别讲解

sql中#与$有什么区别

mysql中普通、慢查询日志的区别

#和$的区别

redis与mysql有哪些区别

更多相关阅读请进入《#》频道 >>


数据库系统概念 第6版
书籍

数据库系统概念 第6版

机械工业出版社

本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...