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抓即时股票信息
Oct 09 PHP
MYSQL数据库初学者使用指南
Nov 16 PHP
phpMyAdmin 安装及问题总结
May 28 PHP
解析PHP提交后跳转
Jun 23 PHP
PHP遍历某个目录下的所有文件和子文件夹的实现代码
Jun 28 PHP
php简单实现MVC
Feb 05 PHP
WordPress网站性能优化指南
Nov 18 PHP
PHP保存session到memcache服务器的方法
Jan 19 PHP
PHP中的Trait 特性及作用
Apr 03 PHP
解析PHP之提取多维数组指定列的方法
Jan 03 PHP
PHP Post获取不到非表单数据的问题解决办法
Feb 27 PHP
ThinkPhP+Apache+PHPstorm整合框架流程图解
Nov 23 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 中的一些经验积累
2006/10/09 PHP
PHP面向接口编程 耦合设计模式 简单范例
2011/03/23 PHP
PHP 杂谈《重构-改善既有代码的设计》之五 简化函数调用
2012/05/07 PHP
PHP错误提示的关闭方法详解
2013/06/23 PHP
Laravel定时任务的每秒执行代码
2019/10/22 PHP
经常用的图片在容器中的水平垂直居中实例
2007/06/10 Javascript
js对象的比较
2011/02/26 Javascript
总结JavaScript设计模式编程中的享元模式使用
2016/05/21 Javascript
微信小程序 获取相册照片实例详解
2016/11/16 Javascript
分析JS中this引发的bug
2017/12/12 Javascript
vue中datepicker的使用教程实例代码详解
2019/07/08 Javascript
在vue项目中引用Antv G2,以饼图为例讲解
2020/10/28 Javascript
在Ubuntu系统下安装使用Python的GUI工具wxPython
2016/02/18 Python
Python 3.x读写csv文件中数字的方法示例
2017/08/29 Python
Python将图片转换为字符画的方法
2020/06/16 Python
在Python中append以及extend返回None的例子
2019/07/20 Python
python实现对服务器脚本敏感信息的加密解密功能
2019/08/13 Python
tensorflow使用指定gpu的方法
2020/02/04 Python
Pycharm远程连接服务器并实现代码同步上传更新功能
2020/02/25 Python
python和php哪个容易学
2020/06/19 Python
使用CSS3的背景渐变Text Gradient 创建文字颜色渐变
2014/08/19 HTML / CSS
导出HTML5 Canvas图片并上传服务器功能
2019/08/16 HTML / CSS
英国知名的护肤彩妆与时尚配饰大型综合零售电商:Unineed
2016/11/21 全球购物
Right-on官方网站:日本知名的休闲服装品牌
2019/07/12 全球购物
乐高奥地利官方商店:LEGO Shop AT
2019/07/16 全球购物
Ancheer官方户外和运动商店:销售电动自行车
2019/08/07 全球购物
高中美术教学反思
2014/01/19 职场文书
网络工程师专家职业发展路线
2014/02/14 职场文书
眼镜促销方案
2014/03/15 职场文书
《画》教学反思
2014/04/14 职场文书
对外汉语教师推荐信
2015/03/27 职场文书
2016春季运动会前导词
2015/11/25 职场文书
深入浅析Redis 集群伸缩原理
2021/05/15 Redis
整理Python中常用的conda命令操作
2021/06/15 Python
SpringBoot SpringEL表达式的使用
2021/07/25 Java/Android
CSS基础详解
2021/10/16 HTML / CSS