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 相关文章推荐
手把手教你使用DedeCms的采集的图文教程
Mar 11 PHP
php 远程图片保存到本地的函数类
Dec 08 PHP
PHPLog php 程序调试追踪工具
Sep 09 PHP
php后台程序与Javascript的两种交互方式
Oct 25 PHP
第4章 数据处理-php正则表达式-郑阿奇(续)
Jul 04 PHP
ubuntu10.04配置 nginx+php-fpm模式的详解
Jun 03 PHP
zf框架的校验器InArray使用示例
Mar 13 PHP
php统计时间和内存使用情况示例分享
Mar 13 PHP
WordPress中is_singular()函数简介
Feb 05 PHP
PHP的时间戳与具体时间转化的简单实现
Jun 13 PHP
Thinkphp微信公众号支付接口
Aug 04 PHP
PHP PDOStatement::setAttribute讲解
Feb 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/10/09 PHP
php创建多级目录代码
2008/06/05 PHP
php中让上传的文件大小在上传前就受限制的两种解决方法
2013/06/24 PHP
php数组查找函数总结
2014/11/18 PHP
摘自织梦CMS的HTTP文件下载类
2015/08/08 PHP
php实现数组纵向转横向并过滤重复值的方法分析
2017/05/29 PHP
popdiv
2006/07/14 Javascript
基于jquery编写的横向自适应幻灯片切换特效的实例代码
2013/08/06 Javascript
jquery用ajax方式从后台获取json数据后如何将内容填充到下拉列表
2015/08/26 Javascript
快速学习AngularJs HTTP响应拦截器
2015/12/31 Javascript
JS中artdialog弹出框控件之提交表单思路详解
2016/04/18 Javascript
JS控制弹出悬浮窗口(一览画面)的实例代码
2016/05/30 Javascript
js鼠标单击和双击事件冲突问题的快速解决方法
2016/07/11 Javascript
详解AngularJS1.x学习directive 中‘& ’‘=’ ‘@’符号的区别使用
2017/08/23 Javascript
详解angularjs4部署文件过大解决过程
2018/12/05 Javascript
Makefile/cmake/node-gyp中区分判断不同平台的方法
2018/12/18 Javascript
微信小程序 SOTER 生物认证DEMO 指纹识别功能
2019/12/13 Javascript
Vue + element 实现多选框组并保存已选id集合的示例代码
2020/06/03 Javascript
浅谈vue项目,访问路径#号的问题
2020/08/14 Javascript
python3之模块psutil系统性能信息使用
2018/05/30 Python
Python实现通过继承覆盖方法示例
2018/07/02 Python
Python enumerate函数功能与用法示例
2019/03/01 Python
Python 实现自动导入缺失的库
2019/10/29 Python
python的reverse函数翻转结果为None的问题
2020/05/11 Python
css3背景_动力节点Java学院整理
2017/07/11 HTML / CSS
三只松鼠官方旗舰店:全网坚果销售第1
2017/11/25 全球购物
Yahoo-PHP面试题1
2016/07/20 面试题
公司会议策划方案
2014/05/17 职场文书
家长会欢迎标语
2014/06/24 职场文书
社区安全生产月活动总结
2014/07/05 职场文书
学校消防安全责任书
2014/07/23 职场文书
2014年民政工作总结
2014/11/26 职场文书
党建工作目标管理责任书
2015/01/29 职场文书
廉洁自律个人总结
2015/02/14 职场文书
2015年父亲节寄语
2015/03/23 职场文书
解决Windows Server2012 R2 无法安装 .NET Framework 3.5
2022/04/29 Servers