《PHP教程:php插入含有特殊符号数据的处理方法》要点:
本文介绍了PHP教程:php插入含有特殊符号数据的处理方法,希望对您有用。如果有疑问,可以联系我们。
PHP教程发现问题
PHP教程当我们在向mysql写入数据时,如果数据中有特殊字符就会出现数据无法正常入库的情况,比如:
PHP教程
mysql_query(”update table set `name`='make's'”);
PHP教程而这个时候一般就是使用addslashes()
这个函数来转义数据中的特殊字符
PHP教程处理方法
PHP教程PHP为了安全性,所以引入了个magic_quotes_gpc = On
的功能,可以不需要做任何处理就能直接把单引号插入数据库中,那么对于Off时,则需要考虑单引号的问题了,而不是一味地信任运行环境.
PHP教程当magic_quotes_gpc = On
时,使用了addslashes()
处理后的数据在数据库中将以\'形式保存,如果此时直接输出的话,就会发现比自己期待的内容多了个\,因此stripslashes()
出场了,它能把\去掉(区别于str_replace(”\”, “”,$Str)
).
PHP教程当magic_quotes_gpc = Off
时,使用了addslashes()
处理后的数据在数据库中将以'形式保存,没有上面说的有\的问题,addslashes()
起到插入数据不出错的作用,如果此时直接输出的话,数据正常.不需要再用stripslashes()
.
PHP教程addslashes()
和stripslashes()
正好是相反的,直接记忆:addslashes()
加个\,stripslashes()
去个\
PHP教程那么什么时候用呢?
PHP教程简单说:
PHP教程当magic_quotes_gpc = On
时,系统会自动处理单引号等问题,用不用addslashes()
和stripslashes()
都没关系,但是如果添加数据时用了addslashes()
, 那么显示数据时必须要stripslashes()
PHP教程当magic_quotes_gpc = Off
时,系统不会处理单引号等问题,所以插入数据时必须要使用addslashes()
,显示数据时则不需要使用stripslashes()
.
PHP教程既然有了分析,做程序时要怎么办呢?根据以上两种情况,可得:
PHP教程不管magic_quotes_gpc
是On还是Off,咱添加数据时都用addslashes()
,当On时,必须使用stripslashes()
,Off时则不能用stripslashes()
.
PHP教程总结
PHP教程以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流.
转载请注明本页网址:
http://www.vephp.com/jiaocheng/2598.html