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()
。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。
编程语言
- 机械手焊接机器人编程 机械手焊接设备编程
- vb数据库编程实例,vb做数据库
- tiobe世界编程语言排行榜,全球编程语言排行
- 成都java编程培训 成都it编程培训中心
- 编程基础培训,编程基础知识培训
- flash游戏编程基础教程,flash游戏开发教程
- 不会英语能学编程吗 不会英语可以学程序员吗
- 爱心代码编程C语言 爱心代码编程c语言公式
- c语言编程学习入门 c语言编程快速入门
- 西门子plc编程培训 西门子plc编程培训班
- 哪里可以学编程 台州哪里可以学编程
- 少儿编程哪个好 少儿编程哪个品牌好
- 编程是什么意思,图形编程是什么意思
- c语言编程软件下载,c语言编程软件在哪下载
- java编程软件下载,java编程下载手机版
- ug编程培训学校,ug编程培训教程