我们在向mysql进行数据导入这一操作的过程当中, 像这样的情况, 例如:
mysql_query("update table set `title`='kuhanzhu's blog'");
那就会出现错误的情况, 这就像在使用 asp 的时候一模一样, 数据库都会对单引号表现出特别的敏感, 而在这样的时刻就变得最为严重了, 它跟那个 asp 的包含(”‘”, “””, “'s blog”)的功能是一模一样的。
PHP出于安全方面的考虑, 所以引入了一个名为On的功能, 这个功能的意思是可以不需要进行任何额外的处理,就有能力直接把包含单引号的数据插入到数据库里面去, 那么当这个功能处于Off的状态时, 则必须得把单引号的问题考虑清楚才行, 而不能总是毫无保留地信任所处的运行环境。
当等于On的时候, 使用了括号里面有内容处理过的数据在数据库里面是以单引号反斜杠这个形式进行保存的, 如果这个时候直接输出出来的话, 就会发现显示出来的内容比自己预期的内容多了一个反斜杠, 所以这个时候另一个括号里面的内容登场了, 它能够把这个反斜杠给去掉, 注意这一点区别于将双引号空字符串和变量替换成空那个操作。
在情况被设置为关闭的时候, 那些经过了某种操作所处理之后的数据, 在数据库里面的保存形式, 是以一种特定的形式进行存放的, 这种情况下, 是不会出现之前所说的那种带有反斜杠的问题的, 那个被称为括号的操作, 其作用在于确保插入数据的时候不会出现错误现象, 如果在这个时候, 直接把数据给输出出来, 那么数据就是正常的样子, 因此, 就不需要再去使用另一个也被称为括号的东西了。
( )和( )正好是相反的, 这一点可以直接通过记忆来掌握, 简单来说就是在( )里面多加上一个反斜杠\\, 而在( )里面则要去掉一个反斜杠\\。
那么什么时候用呢?
说白了, 就是用大白话。
当参数值为On的时候, 系统自身就会去自动处理单引号之类的那些问题, 至于说括不括上那个括号, 其实是没有什么关系的, 但是有一点要特别注意, 那就是如果在往里头添加数据这个阶段用了括号, 那么等到后面显示数据的阶段就必须也要用上括号。
当 = Off 是当前的一个状态值, 系统就不会去处理像单引号这些玩意儿。所以你在插入数据的时候, 必须得用上 () , 但是在显示数据的时候, 则不需要用 ()。
因为已经有了分析, 那么在制作程序的时候需要去处理些什么东西呢? 结合上述所提到的两种具体的状况来说, 是可以得到以下结论的:
当大家是在选择开启并且进行数据的添加操作的时候, 是需要使用小括号的这一组符号的, 特别是当处于开启这个状态的时候, 就必须得用小括号, 可是反过来, 如果说是关掉了的话, 那么是不可以小括号出现的。
大家通常都会用到一个小括号, 也就是那个像耳朵一样的符号(), 来分别表示开或关的状态。
最后举例:
代码
//提交数据,或者变量准备:
$Content=addslashes(”这里面是数据,不管有没单引号或者还是变量”);
//插入数据到数据库,代码省略
//开始显示数据
$Content=”从数据库读取的数据”;
if(get_magic_quotes_gpc()){
$Content=stripslashes($Content);
}
echo $Content;
当前这个版本的配置命令已经被去掉掉了, 所以呢, 我们要考虑的就是那个等于关闭的那个情况, 就是在加入数据的时候要用上括号, 不过在显示出来的时候就不需要用括号了, 就这样子。
网硕互联帮助中心



评论前必须登录!
注册