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; }
用转义后的字符替换需要转义的字符就可以了。
博主又发现反斜杠转义时有些麻烦,经过测试发现正确的查询反斜杠’\’的方法是查询’\\’ ,而直接转义时无法转义’\’为’\\’,所以就想到了上面的方法。
相关文章推荐
- CodeIgniter需要注意错写查询条件导致数据库索引失效的问题
- 解决 php 查询数据库返回 Resource id #9的问题
- 关于网页中显示php查询数据库结果乱码问题
- #学志#php查询数据库输出乱码问题
- 关于一个编辑器插入数据库需要转义的问题
- php服务器需要定时刷新数据库问题
- [转]php查询数据库乱码问题
- php查询数据库后在页面上显示中文乱码的问题
- 初学php遇见的查询数据库语句出错问题占内存
- Spring中数据库连接池需要注意的问题
- 一个数据库查询的问题
- 无数据库的详细域名查询程序PHP版(5)
- PHP 5.4 中经 htmlspecialchars 转义后的中文字符串为空的问题
- PHP零基础遍历查询数据库结果集
- PHP memcache 内存缓存 数据库查询 应用 高洛峰 细说PHP
- php连接数据库提示could not find driver 问题解决
- PHP 数据库访问问题集锦
- Android查询数据库问题
- 数据库查询优化问题笔记
- PHP 5.4 中经 htmlspecialchars 转义后的中文字符串为空,DeDeCMS在PHP5.4下编辑器中文不显示问题