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 相关文章推荐
关于时间计算的结总
Dec 06 PHP
php 301转向实现代码
Sep 18 PHP
PHP冒泡排序算法代码详细解读
Jul 17 PHP
PHP漏洞全解(详细介绍)
Nov 13 PHP
PHP提示Notice: Undefined variable的解决办法
Nov 24 PHP
php selectradio和checkbox默认选择的实现方法详解
Jun 29 PHP
Codeigniter实现处理用户登录验证后的URL跳转
Jun 12 PHP
分享一段PHP制作的中文拼音首字母工具类
Dec 11 PHP
php5.2的curl-bug 服务器被php进程卡死问题排查
Sep 19 PHP
Laravel实现自定义错误输出内容的方法
Oct 10 PHP
PHP实现分布式memcache设置web集群session同步的方法
Apr 10 PHP
PHP文件打开关闭及读写操作示例解析
Aug 06 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 curl基本操作详解
2013/07/23 PHP
PHP静态文件生成类实例
2014/11/29 PHP
PHP实现多维数组转字符串和多维数组转一维数组的方法
2015/08/08 PHP
细品javascript 寻址,闭包,对象模型和相关问题
2009/04/27 Javascript
javascript 打开页面window.location和window.open的区别
2010/03/17 Javascript
JavaScript原型继承之基础机制分析
2011/08/26 Javascript
jQuery写的日历(包括日历的样式及功能)
2013/04/23 Javascript
浅谈JavaScript中的this指针和引用知识
2016/08/05 Javascript
js从数组中删除指定值(不是指定位置)的元素实现代码
2016/09/13 Javascript
jquery实现百叶窗效果
2017/01/12 Javascript
jQuery序列化后的表单值转换成Json
2017/06/16 jQuery
JS库中的Particles.js在vue上的运用案例分析
2017/09/13 Javascript
解决easyui日期时间框ie的兼容的问题
2018/03/01 Javascript
javascript设计模式 ? 组合模式原理与应用实例分析
2020/04/14 Javascript
python实现计算资源图标crc值的方法
2014/10/05 Python
python批量生成本地ip地址的方法
2015/03/23 Python
对于Python中线程问题的简单讲解
2015/04/03 Python
python正则表达式之作业计算器
2016/03/18 Python
浅谈Python Opencv中gamma变换的使用详解
2018/04/02 Python
将Django项目部署到CentOs服务器中
2018/10/18 Python
Python3爬虫使用Fidder实现APP爬取示例
2018/11/27 Python
django框架创建应用操作示例
2019/09/26 Python
简单掌握CSS3将文字描边及填充文字颜色的方法
2016/03/07 HTML / CSS
实例教程 利用html5和css3打造一款创意404页面
2014/10/20 HTML / CSS
澳大利亚最大的女装零售商:Millers
2017/09/10 全球购物
英国玛莎百货新西兰:Marks & Spencer New Zealand
2019/07/21 全球购物
结婚邀请函范文
2014/01/14 职场文书
物流专业自荐信
2014/05/23 职场文书
检讨书格式
2015/01/23 职场文书
初中语文教师研修日志
2015/11/13 职场文书
2016教师暑期培训学习心得体会
2016/01/09 职场文书
Python实战之OpenCV实现猫脸检测
2021/06/26 Python
python3操作redis实现List列表实例
2021/08/04 Python
使用Python+OpenCV进行卡类型及16位卡号数字的OCR功能
2021/08/30 Python
python机器学习创建基于规则聊天机器人过程示例详解
2021/11/02 Python
python疲劳驾驶困倦低头检测功能的实现
2022/04/04 Python