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 相关文章推荐
人大复印资料处理程序_补充篇
Oct 09 PHP
php录入页面中动态从数据库中提取数据的实现
Oct 09 PHP
PHP stristr() 函数(不区分大小写的字符串查找)
Jun 03 PHP
php语言流程控制中的主动与被动
Nov 05 PHP
PHP提示Cannot modify header information - headers already sent by解决方法
Sep 22 PHP
PHP脚本监控Nginx 502错误并自动重启php-fpm
May 13 PHP
php计算多维数组中所有值总和的方法
Jun 24 PHP
php mysqli查询语句返回值类型实例分析
Jun 29 PHP
浅谈PHP的数据库接口和技术
Dec 09 PHP
Symfony2针对输入时间进行查询的方法分析
Jun 28 PHP
php反序列化长度变化尾部字符串逃逸(0CTF-2016-piapiapia)
Feb 15 PHP
PHP SESSION跨页面传递失败解决方案
Dec 11 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读取PDF内容配合Xpdf的使用
2012/11/24 PHP
php中serialize序列化与json性能测试的示例分析
2013/04/27 PHP
使用PHP生成图片的缩略图的方法
2015/08/18 PHP
Laravel SQL语句记录方式(推荐)
2016/05/26 PHP
PHP的Json中文处理解决方案
2016/09/29 PHP
IE中jscript/javascript的条件编译
2006/09/07 Javascript
js实现图片轮换效果代码
2013/04/16 Javascript
多个jquery.datatable共存,checkbox全选异常的快速解决方法
2013/12/10 Javascript
JS模拟酷狗音乐播放器收缩折叠关闭效果代码
2015/10/29 Javascript
使用jQuery实现Web页面换肤功能的要点解析
2016/05/12 Javascript
JS组件Bootstrap Table使用实例分享
2016/05/30 Javascript
JS实现n秒后自动跳转的两种方法
2020/11/30 Javascript
Angular1.x复杂指令实例详解
2017/03/01 Javascript
JS html时钟制作代码分享
2017/03/03 Javascript
JavaScript 获取元素在父节点中的下标(推荐)
2017/06/28 Javascript
vue2利用Bus.js如何实现非父子组件通信详解
2017/08/25 Javascript
vue2.0+ 从插件开发到npm发布的示例代码
2018/04/28 Javascript
angular2路由之routerLinkActive指令【推荐】
2018/05/30 Javascript
JavaScript变量基本使用方法实例分析
2019/11/15 Javascript
Python的净值数据接口调用示例分享
2016/03/15 Python
带你认识Django
2019/01/15 Python
对Python中DataFrame选择某列值为XX的行实例详解
2019/01/29 Python
Python TestCase中的断言方法介绍
2019/05/02 Python
Django中ORM外键和表的关系详解
2019/05/20 Python
Appium+python自动化怎么查看程序所占端口号和IP
2019/06/14 Python
解决Atom安装Hydrogen无法运行python3的问题
2019/08/28 Python
使用TensorFlow对图像进行随机旋转的实现示例
2020/01/20 Python
什么是Python变量作用域
2020/06/03 Python
Matplotlib.pyplot 三维绘图的实现示例
2020/07/28 Python
澳大利亚音乐商店:Bava’s Music City
2019/05/05 全球购物
普通PHP程序员笔试题
2016/01/01 面试题
文艺晚会主持词
2014/03/24 职场文书
有关朝花夕拾的读书笔记
2015/06/29 职场文书
CocosCreator入门教程之网络通信
2021/04/16 Javascript
Java实现简易的分词器功能
2021/06/15 Java/Android
Oracle数据库中通用的函数实例详解
2022/03/25 Oracle