您的位置:首页 > 编程语言 > PHP开发

php中查询数据库含通配符时需要转义的问题

2017-07-21 11:00 411 查看
问题描述:博主在测试数据库模糊查询功能时发现,查询内容包括 下划线’_’,百分号’%’,反斜杠’\’等特殊符号时会出现错误的查询结果,下划线,百分号会被当作通配符,反斜杠会被当作转义符。



博主想到可以在后台对接收的数据进行转义。但是查百度找到的函数都不能用

,所以想要自己写个函数进行转义,其实就是在百分号’%’,下划线’_’等字符的前面加上转义字符’\’。

下面是博主自己写的函数:

//转义函数
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;
}


用转义后的字符替换需要转义的字符就可以了。

博主又发现反斜杠转义时有些麻烦,经过测试发现正确的查询反斜杠’\’的方法是查询’\\’ ,而直接转义时无法转义’\’为’\\’,所以就想到了上面的方法。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: