有人可以从PHP手册中了解这两个函数之间的区别吗?
addslashes:返回一个字符串,在数据库查询等中需要加引号的字符之前带有反斜杠。这些字符是单引号('),双引号(“),反斜杠()和NUL(空字节)。
mysql_real_escape_string:mysql_real_escape_string()调用MySQL的库函数mysql_real_escape_string,该函数将反斜杠附加到以下字符:\ x00,\ n,\ r,\,','和\ x1a。
从我收集到的主要区别是\ x00,\ n \ r \ x1a不会引起冲突,您能告诉我它的意义是什么吗?
谢谢
您引用的内容可能来自文档,但据我所知不一定是正确的。
addslashes在通常令人不安的字符上添加斜杠。mysql_real_escape_string转义MySQL需要转义的所有内容。这可能比addslashes需要照顾的字符更多或更少。
同样,mysql_real_escape_string也不一定会添加斜杠来进行转义。尽管我认为这样做是可行的,但最新版本的MySQL通过将两个引号放在一起而不是在其前面加上斜线来转义引号。
我认为您应该始终使用数据提供程序的转义功能而不是addslashes,因为addslashes可能会执行过多或不足的工作以达到使用目的。另一方面,mysql_real_escape_string 知道如何做准备将字符串嵌入查询中的字符串。即使规范更改了如何转义的内容,并且突然之间您不再使用反斜杠,您的代码仍然可以正常工作,因为您mysql_real_escape_string会意识到这一点。来源:stack overflow
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。