问题描述:博主在测试数据库模糊查询功能时发现,查询内容包括 下划线’_’,百分号’%’,反斜杠’\’等特殊符号时会出现错误的查询结果,下划线,百分号会被当作通配符,反斜杠会被当作转义符。
博主想到可以在后台对接收的数据进行转义。但是查百度找到的函数都不能用
,所以想要自己写个函数进行转义,其实就是在百分号’%’,下划线’_’等字符的前面加上转义字符’\’。
下面是博主自己写的函数:
function transfer($string){
$string = str_replace('%','\%',$string);
$string = str_replace('_','\_',$string);
$string = str_replace('[','\[',$string);
$string = str_replace(']','\]',$string);
$string = str_replace('\\','\\\\\\a',$string);
$string = str_replace('\a','\\',$string);
return $string;
用转义后的字符替换需要转义的字符就可以了。
博主又发现反斜杠转义时有些麻烦,经过测试发现正确的查询反斜杠’\’的方法是查询’\\’ ,而直接转义时无法转义’\’为’\\’,所以就想到了上面的方法。
我们经常使用like语句配合%%通配符来进行模糊查询,那么如果字段内容本身含有%,而你要查询包含有%的记录怎么办呢怎么办呢。假设字段是title,那么下面的语句可以吗?
select * from table where title like “%%%”;
如果你试过就知道,肯定不行的,那么正确的写法是怎样的呢?
我们应该对%符号进行转义:
select * from table wher
10件在PHP7中不要做的事情
1. 不要使用mysql_函数
这一天终于来了,从此你不仅仅“不应该”使用mysql_函数。PHP 7 已经把它们从核心中全部移除了,也就是说你需要迁移到好得多的mysqli_函数,或者更灵活的 PDO 实现。
2. 不要编写垃圾代码
这一条可能易于理解,但是会变得越来越重要,因为 PHP 7 的速度提升可能会隐藏你的一些问题。不要仅仅满足于你的站点速度,因...