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 相关文章推荐
强烈推荐:php.ini中文版(1)
Oct 09 PHP
PHP数字格式化
Dec 06 PHP
PHP PDO函数库详解
Apr 27 PHP
mongo Table类文件 获取MongoCursor(游标)的实现方法分析
Jul 01 PHP
php颜色转换函数hex-rgb(将十六进制格式转成十进制格式)
Sep 23 PHP
检测codeigniter脚本消耗内存情况的方法
Mar 21 PHP
PHP的openssl加密扩展使用小结(推荐)
Jul 18 PHP
php中简单的对称加密算法实现
Jan 05 PHP
php实现头像上传预览功能
Apr 27 PHP
关于ThinkPHP中的异常处理详解
May 11 PHP
php工具型代码之印章抠图
Jul 18 PHP
TP5.0框架实现无限极回复功能的方法分析
May 04 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.ini中文版(1)
2006/10/09 PHP
php数组转成json格式的方法
2015/03/09 PHP
Prototype使用指南之form.js
2007/01/10 Javascript
jQuery Ajax 全解析
2009/02/08 Javascript
非常有用的40款jQuery 插件推荐(系列二)
2011/12/25 Javascript
jQuery实现选项卡切换效果简单演示
2015/12/09 Javascript
javascript性能优化之事件委托实例详解
2015/12/12 Javascript
JS把内容动态插入到DIV的实现方法
2016/07/19 Javascript
js无法获取到html标签的属性的解决方法
2016/07/26 Javascript
js 创建对象 经典模式全面了解
2016/08/16 Javascript
Bootstrap基本样式学习笔记之表格(2)
2016/12/07 Javascript
浅谈javascript alert和confirm的美化
2016/12/15 Javascript
BootStrap 表单控件之单选按钮水平排列
2017/05/23 Javascript
Javascript实现base64的加密解密方法示例
2017/06/27 Javascript
ES6学习教程之模板字符串详解
2017/10/09 Javascript
微信小程序scroll-view组件实现滚动动画
2018/01/31 Javascript
优雅的在React项目中使用Redux的方法
2018/11/10 Javascript
node.js实现http服务器与浏览器之间的内容缓存操作示例
2020/02/11 Javascript
Vue组件化开发之通用型弹出框的实现
2020/02/28 Javascript
JavaScript监听一个DOM元素大小变化
2020/04/26 Javascript
Vue项目中数据的深度监听或对象属性的监听实例
2020/07/17 Javascript
Python求两个文本文件以行为单位的交集、并集与差集的方法
2015/06/17 Python
python获取服务器响应cookie的实例
2018/12/28 Python
OpenCV搞定腾讯滑块验证码的实现代码
2019/05/18 Python
Python基础学习之类与实例基本用法与注意事项详解
2019/06/17 Python
Python二进制文件读取并转换为浮点数详解
2019/06/25 Python
python matplotlib库绘制条形图练习题
2019/08/10 Python
详解python中index()、find()方法
2019/08/29 Python
在keras中对单一输入图像进行预测并返回预测结果操作
2020/07/09 Python
详解基于canvas的视频遮罩插件
2018/01/04 HTML / CSS
canvas拼图功能实现代码示例
2018/11/21 HTML / CSS
健康状况证明书
2014/11/26 职场文书
2015年除四害工作总结
2015/07/23 职场文书
关于开学的感想
2015/08/10 职场文书
导游词之潮音寺
2019/09/26 职场文书
Apache Pulsar集群搭建部署详细过程
2022/02/12 Servers