php插入含有特殊符号数据的处理方法


Posted in PHP onNovember 24, 2016

发现问题

当我们在向mysql写入数据时,如果数据中有特殊字符就会出现数据无法正常入库的情况,比如:

mysql_query(”update table set `name`='make's'”);

而这个时候一般就是使用addslashes()这个函数来转义数据中的特殊字符

处理方法

PHP为了安全性,所以引入了个magic_quotes_gpc = On的功能,可以不需要做任何处理就能直接把单引号插入数据库中,那么对于Off时,则需要考虑单引号的问题了,而不是一味地信任运行环境。

magic_quotes_gpc = On时,使用了addslashes()处理后的数据在数据库中将以\'形式保存,如果此时直接输出的话,就会发现比自己期待的内容多了个\,因此stripslashes()出场了,它能把\去掉(区别于str_replace(”\”, “”,$Str))。

magic_quotes_gpc = Off时,使用了addslashes()处理后的数据在数据库中将以'形式保存,没有上面说的有\的问题,addslashes()起到插入数据不出错的作用,如果此时直接输出的话,数据正常。不需要再用stripslashes()

addslashes()stripslashes()正好是相反的,直接记忆:addslashes()加个\,stripslashes()去个\

那么什么时候用呢?

简单说:

magic_quotes_gpc = On时,系统会自动处理单引号等问题,用不用addslashes()stripslashes()都没关系,但是如果添加数据时用了addslashes() , 那么显示数据时必须要stripslashes()

magic_quotes_gpc = Off时,系统不会处理单引号等问题,所以插入数据时必须要使用addslashes() ,显示数据时则不需要使用stripslashes()

既然有了分析,做程序时要怎么办呢?根据以上两种情况,可得:

不管magic_quotes_gpc是On还是Off,咱添加数据时都用addslashes() ,当On时,必须使用stripslashes() ,Off时则不能用stripslashes()

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。

PHP 相关文章推荐
php中数据的批量导入(csv文件)
Oct 09 PHP
如何在PHP中使用Oracle数据库(3)
Oct 09 PHP
php采集速度探究总结(原创)
Apr 18 PHP
PHP中防止SQL注入攻击和XSS攻击的两个简单方法
Apr 15 PHP
PHP 获取远程文件大小的3种解决方法
Jul 11 PHP
利用yahoo汇率接口实现实时汇率转换示例 汇率转换器
Jan 14 PHP
PHP用星号隐藏部份用户名、身份证、IP、手机号等实例
Apr 08 PHP
php实现简单的MVC框架实例
Sep 23 PHP
PHP性能分析工具xhprof的安装使用与注意事项
Dec 19 PHP
PHP+mysql防止SQL注入的方法小结
Apr 27 PHP
php输出文字乱码的解决方法
Oct 04 PHP
php TP5框架生成二维码链接
Apr 01 PHP
PHP合并数组的2种方法小结
Nov 24 #PHP
PHP magento后台无法登录问题解决方法
Nov 24 #PHP
微信 开发生成带参数的二维码的实例
Nov 23 #PHP
微信 getAccessToken方法详解及实例
Nov 23 #PHP
Yii核心验证器api详解
Nov 23 #PHP
[原创]php集成安装包wampserver修改密码后phpmyadmin无法登陆的解决方法
Nov 23 #PHP
php in_array() 检查数组中是否存在某个值详解
Nov 23 #PHP
You might like
如何使用PHP中的字符串函数
2006/11/24 PHP
smarty自定义函数用法示例
2016/05/20 PHP
解决Laravel 使用insert插入数据,字段created_at为0000的问题
2019/10/11 PHP
前端轻量级MVC框架CanJS详解
2014/09/26 Javascript
BAT及各大互联网公司2014前端笔试面试题--JavaScript篇
2014/10/29 Javascript
jQuery创建自定义的选择器用以选择高度大于100的超链接实例
2015/03/18 Javascript
nodejs爬虫抓取数据乱码问题总结
2015/07/03 NodeJs
nodejs 中模拟实现 emmiter 自定义事件
2016/02/22 NodeJs
解决jQuery ajax请求在IE6中莫名中断的问题
2016/06/20 Javascript
Angular下H5上传图片的方法(可多张上传)
2017/01/09 Javascript
angularJS利用ng-repeat遍历二维数组的实例代码
2017/06/03 Javascript
Angular网络请求的封装方法
2018/05/22 Javascript
angularjs实现table表格td单元格单击变输入框/可编辑状态示例
2019/02/21 Javascript
使用JS实现动态时钟
2020/03/12 Javascript
解决elementUI 切换tab后 el_table 固定列下方多了一条线问题
2020/07/19 Javascript
vue axios请求成功却进入catch的原因分析
2020/09/08 Javascript
JavaScript 中的执行上下文和执行栈实例讲解
2021/02/25 Javascript
Python创建文件和追加文件内容实例
2014/10/21 Python
单利模式及python实现方式详解
2018/03/20 Python
python 使用正则表达式按照多个空格分割字符的实例
2018/12/20 Python
Python aiohttp百万并发极限测试实例分析
2019/10/26 Python
基于tensorflow指定GPU运行及GPU资源分配的几种方式小结
2020/02/03 Python
Python写捕鱼达人的游戏实现
2020/03/31 Python
基于Python模拟浏览器发送http请求
2020/11/06 Python
用html5的canvas画布绘制贝塞尔曲线完整代码
2013/08/14 HTML / CSS
Omio中国:全欧洲低价大巴、火车和航班搜索和比价
2018/08/09 全球购物
客服端调用EJB对象的几个基本步骤
2012/01/15 面试题
畜牧兽医本科生个人的自我评价
2013/10/11 职场文书
办公室主任职责范文
2013/11/08 职场文书
外贸业务员求职信
2014/06/16 职场文书
幼儿老师求职信
2014/06/30 职场文书
医院领导班子四风对照检查材料
2014/09/27 职场文书
高校师德师风自我剖析材料
2014/09/29 职场文书
何玥事迹观后感
2015/06/16 职场文书
八年级地理课件资料及考点知识分享
2019/08/30 职场文书
为了顺利买到演唱会的票用Python制作了自动抢票的脚本
2021/10/16 Python