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 相关文章推荐
FCKeditor添加自定义按钮
Mar 27 PHP
php 分页类 扩展代码
Jun 11 PHP
php的memcached客户端memcached
Jun 14 PHP
第七章 php自定义函数实现代码
Dec 30 PHP
解析php中heredoc的使用方法
Jun 17 PHP
php模拟服务器实现autoindex效果的方法
Mar 10 PHP
PHP strcmp()和strcasecmp()的区别实例
Nov 05 PHP
Yii2实现UploadedFile上传文件示例
Feb 15 PHP
Thinkphp 空操作、空控制器、命名空间(详解)
May 05 PHP
PHP实现上传多图即时显示与即时删除的方法
May 09 PHP
解决laravel 出现ajax请求419(unknown status)的问题
Sep 03 PHP
laravel实现于语言包的完美切换方法
Sep 29 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+memcache实现的网站在线人数统计代码
2014/07/04 PHP
微信支付开发发货通知实例
2016/07/12 PHP
PHP中非常有用却鲜有人知的函数集锦
2019/08/17 PHP
JavaScript高级程序设计(第3版)学习笔记10 再访js对象
2012/10/11 Javascript
JS点击某个图标或按钮弹出文件选择框的实现代码
2016/09/27 Javascript
JavaScript表单验证开发
2016/11/23 Javascript
AngularJS自定义服务与fliter的混合使用
2016/11/24 Javascript
纯原生js实现table表格的增删
2017/01/05 Javascript
VUE 更好的 ajax 上传处理 axios.js实现代码
2017/05/10 Javascript
vue.js中v-on:textInput无法执行事件问题的解决过程
2017/07/12 Javascript
vue微信分享 vue实现当前页面分享其他页面
2017/12/02 Javascript
详解如何实现一个简单的Node.js脚手架
2017/12/04 Javascript
详解react关于事件绑定this的四种方式
2018/03/09 Javascript
vue ssr 指南详读
2018/06/29 Javascript
微信小程序代码上传、审核发布小程序
2019/05/18 Javascript
layui自定义插件citySelect实现省市区三级联动选择
2019/07/26 Javascript
VUE中鼠标滚轮使div左右滚动的方法详解
2020/12/14 Vue.js
python标准算法实现数组全排列的方法
2015/03/17 Python
python+requests+unittest API接口测试实例(详解)
2017/06/10 Python
Python cookbook(数据结构与算法)从字典中提取子集的方法示例
2018/03/22 Python
基于python的图片修复程序(实现水印去除)
2018/06/04 Python
python2与python3共存问题的解决方法
2018/09/18 Python
Python变量类型知识点总结
2019/02/18 Python
CentOS6.9 Python环境配置(python2.7、pip、virtualenv)
2019/05/06 Python
python调用jenkinsAPI构建jenkins,并传递参数的示例
2020/12/09 Python
需要知道的CSS3动画技术
2010/01/01 HTML / CSS
html5中地理位置定位api接口开发应用小结
2013/01/04 HTML / CSS
印度尼西亚最完整和最大的在线药房网站:Farmaku.com
2019/11/23 全球购物
校园活动策划书范文
2014/01/10 职场文书
会议开场欢迎词
2014/01/15 职场文书
现场活动策划方案
2014/08/22 职场文书
大学生创业计划书怎么写
2014/09/15 职场文书
2014年扶贫工作总结
2014/11/18 职场文书
安全守法证明
2015/06/23 职场文书
迎新生欢迎词2015
2015/07/16 职场文书
详解redis分布式锁的这些坑
2021/05/19 Redis