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数组 为文章加关键字连接 文章内容自动加链接
Dec 29 PHP
php实现图形显示Ip地址的代码及注释
Jan 20 PHP
php实现的树形结构数据存取类实例
Nov 29 PHP
使用PHP uniqid函数生成唯一ID
Nov 18 PHP
PHP实现数据分页显示的简单实例
May 26 PHP
PHP微信开发用Cache 解决数据缓存
Jul 11 PHP
轻松掌握php设计模式之访问者模式
Sep 23 PHP
php基于curl主动推送最新内容给百度收录的方法
Oct 14 PHP
php 广告点击统计代码(php+mysql)
Feb 21 PHP
PHP连接MySQL数据库并以json格式输出
May 21 PHP
php遍历目录下文件并按修改时间排序操作示例
Jul 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 5.3.x 的strtotime() 时区设定 警告信息修复
2013/08/05 PHP
叫你如何修改Nginx与PHP的文件上传大小限制
2014/09/10 PHP
PHP正则替换函数preg_replace和preg_replace_callback使用总结
2014/09/22 PHP
什么是PHP7中的孤儿进程与僵尸进程
2019/04/14 PHP
php-7.3.6 编译安装过程
2020/02/11 PHP
php实现断点续传大文件示例代码
2020/06/19 PHP
javascript 点击整页变灰的效果(可做退出效果)。
2008/01/09 Javascript
IE与Firefox在JavaScript上的7个不同写法小结
2009/09/14 Javascript
XmlUtils JS操作XML工具类
2009/10/01 Javascript
浅谈tudou土豆网首页图片延迟加载的效果
2010/06/23 Javascript
动态加载js和css(外部文件)
2013/04/17 Javascript
js与jquery获取父级元素,子级元素,兄弟元素的实现方法
2014/01/09 Javascript
express的中间件bodyParser详解
2014/12/04 Javascript
Angular JS数据的双向绑定详解及实例
2016/12/31 Javascript
关于Mac下安装nodejs、npm和cnpm的教程
2018/04/11 NodeJs
微信小程序swiper禁止用户手动滑动代码实例
2019/08/23 Javascript
jQuery实现颜色打字机的完整代码
2020/03/19 jQuery
JS JQuery获取data-*属性值方法解析
2020/09/01 jQuery
python实现读取并显示图片的两种方法
2017/01/13 Python
Python selenium实现微博自动登录的示例代码
2018/05/16 Python
Python实现多条件筛选目标数据功能【测试可用】
2018/06/13 Python
Python实现的json文件读取及中文乱码显示问题解决方法
2018/08/06 Python
基于python实现KNN分类算法
2020/04/23 Python
Python自定义函数计算给定日期是该年第几天的方法示例
2019/05/30 Python
Python处理时间日期坐标轴过程详解
2019/06/25 Python
Python API 操作Hadoop hdfs详解
2020/06/06 Python
Vs Code中8个好用的python 扩展插件
2020/10/12 Python
python爬虫中url管理器去重操作实例
2020/11/30 Python
canvas实现圆绘制的示例代码
2019/09/11 HTML / CSS
香港卓悦化妆品官网:BONJOUR
2017/09/21 全球购物
GIVENCHY纪梵希官方旗舰店:高定彩妆与贵族护肤品
2018/04/16 全球购物
旅游业大学生创业计划书
2014/01/31 职场文书
环境保护标语
2014/06/20 职场文书
聋哑人盗窃罪辩护词
2015/05/21 职场文书
如何书写邀请函?
2019/06/24 职场文书
nginx代理实现静态资源访问的示例代码
2022/07/07 Servers