php插入含有特殊符号数据的处理方法

 更新时间:2016年11月24日 11:57:21   投稿:daisy  
当我们需要利用php插入含有特殊符号数据的时候,会发现数据无法正常插入,那么这个时候该如何解决呢?最近在工作就遇到了这个问题,于是通过查找资料也得以解决了,现在将处理的方法分享给大家,有需要的朋友们可以参考借鉴,下面来一起学习学习吧。

发现问题

当我们在向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 输出缓冲 Output Control用法实例详解

    php 输出缓冲 Output Control用法实例详解

    这篇文章主要介绍了php 输出缓冲 Output Control用法,结合实例形式详细分析了php 输出缓冲 Output Control基本概念、原理、使用方法及相关操作注意事项,需要的朋友可以参考下
    2020-03-03
  • php常用Stream函数集介绍

    php常用Stream函数集介绍

    本篇文章是对php中的常用Stream函数集进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • 删除数组元素实用的PHP数组函数

    删除数组元素实用的PHP数组函数

    php之从数组中删除空白的元素(包括只有空白字符的元素)将一个二维数组转换为 hashmap
    2008-08-08
  • 统计PHP目录中的文件数方法

    统计PHP目录中的文件数方法

    在本文里小编给大家分享了关于统计PHP目录中的文件数方法和相关知识点,有需要的朋友们参考下。
    2019-03-03
  • PHP中加密解密函数与DES加密解密实例

    PHP中加密解密函数与DES加密解密实例

    这篇文章主要介绍了PHP中加密解密函数与DES加密解密,以实例形式分析了常用的PHP加密解密算法encrypt与DES加密解密的原理及应用方法,非常具有实用价值,需要的朋友可以参考下
    2014-10-10
  • ThinkPHP6使用JWT+中间件实现Token验证实例详解

    ThinkPHP6使用JWT+中间件实现Token验证实例详解

    这篇文章主要介绍了ThinkPHP6使用JWT+中间件实现Token验证的方法,结合实例形式详细分析了JWT的功能、原理及token验证相关操作技巧,需要的朋友可以参考下
    2023-06-06
  • php 浮点数比较方法详解

    php 浮点数比较方法详解

    本篇文章主要介绍了php浮点数比较方法,具有很好的参考价值。下面跟着小编一起来看下吧
    2017-05-05
  • PHP实现接收二进制流转换成图片的方法

    PHP实现接收二进制流转换成图片的方法

    这篇文章主要介绍了PHP实现接收二进制流转换成图片的方法,结合实例形式分析了php文件、目录及图形操作的相关技巧,需要的朋友可以参考下
    2017-01-01
  • PHP中常见的密码处理方式和建议总结

    PHP中常见的密码处理方式和建议总结

    这篇文章主要给大家介绍了关于PHP中常见的密码处理方式和建议的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-10-10
  • php5.4以下版本json不支持不转义内容中文的解决方法

    php5.4以下版本json不支持不转义内容中文的解决方法

    这篇文章主要介绍了php5.4以下版本json不支持不转义内容中文的解决方法,通过一个自定义php方法实现模拟joson中文不转义,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-01-01

最新评论