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 相关文章推荐
利用discuz自带通行证整合dedecms的方法以及文件下载
Mar 06 PHP
php 三维饼图的实现代码
Sep 28 PHP
PHP数组内存耗用太多问题的解决方法
Apr 05 PHP
php编写一个简单的路由类
Apr 13 PHP
windwos下使用php连接oracle数据库的过程分享
May 26 PHP
ThinkPHP3.1数据CURD操作快速入门
Jun 19 PHP
php使用socket post数据到其它web服务器的方法
Jun 02 PHP
twig模板常用语句实例小结
Feb 04 PHP
PHP的Yii框架中创建视图和渲染视图的方法详解
Mar 29 PHP
php基于curl实现随机ip地址抓取内容的方法
Oct 11 PHP
Yii框架用户登录session丢失问题解决方法
Jan 07 PHP
jQuery ajax+PHP实现的级联下拉列表框功能示例
Feb 12 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中redis的用法深入解析
2014/02/20 PHP
CentOS下PHP7的编译安装及MySQL的支持和一些常见问题的解决办法
2015/12/17 PHP
PHP内核探索之变量
2015/12/22 PHP
Zend Framework教程之Zend_Config_Ini用法分析
2016/03/23 PHP
PHP入门教程之面向对象基本概念实例分析
2016/09/11 PHP
JavaScript 获得选中文本内容的方法
2009/02/15 Javascript
用JavaScript对JSON进行模式匹配 (Part 2 - 实现)
2010/07/17 Javascript
基于jquery点击自以外任意处,关闭自身的代码
2012/02/10 Javascript
JQuery移动页面开发之屏幕方向改变与滚屏的实现
2015/12/03 Javascript
win7下安装配置node.js+express开发环境
2015/12/06 Javascript
对象转换为原始值的实现方法
2016/06/06 Javascript
node.js路径处理方法以及绝对路径详解
2021/03/04 Javascript
js实现可旋转的立方体模型
2016/10/16 Javascript
微信小程序 icon组件详细及实例代码
2016/10/25 Javascript
Angular2中如何使用ngx-translate进行国际化
2017/05/21 Javascript
ExtJs异步无法向外传值和赋值的完美解决办法
2017/06/14 Javascript
JavaScript之Date_动力节点Java学院整理
2017/06/28 Javascript
AngularJS双向数据绑定原理之$watch、$apply和$digest的应用
2018/01/30 Javascript
[01:25]DOTA2自定义游戏灵园鬼域等你踏足
2015/10/30 DOTA
python使用ctypes模块调用windowsapi获取系统版本示例
2014/04/17 Python
Python对小数进行除法运算的正确方法示例
2014/08/25 Python
小议Python中自定义函数的可变参数的使用及注意点
2016/06/21 Python
python 随机数使用方法,推导以及字符串,双色球小程序实例
2017/09/12 Python
python实现TF-IDF算法解析
2018/01/02 Python
pyqt5 实现 下拉菜单 + 打开文件的示例代码
2019/06/20 Python
python字典的遍历3种方法详解
2019/08/10 Python
python GUI编程(Tkinter) 创建子窗口及在窗口上用图片绘图实例
2020/03/04 Python
基于Python制作一副扑克牌过程详解
2020/10/19 Python
OSPF有什么优点?为什么OSPF比RIP收敛快?
2013/02/13 面试题
不拖欠农民工工资承诺书
2014/03/31 职场文书
法定代表人身份证明书
2014/09/10 职场文书
北京颐和园导游词
2015/01/30 职场文书
幼儿园庆六一主持词
2015/06/30 职场文书
施工安全责任协议书
2016/03/23 职场文书
成功的商业计划书这样写才最靠谱
2019/07/12 职场文书
HTML CSS 一个标签实现带动画的抖音LOGO
2022/04/26 HTML / CSS