转义特殊字符:单引号(')、双引号(")、反斜线(\),以便于进行数据库查询
方法一:利用mysql库函数
PHP版本在7.0之前:
mysql_escape_string ( string $unescaped_string ) : string
PHP版本在7.0之后:
mysqli_real_escape_string ( mysqli $link , string $escapestr ) : string
方法二:利用转义函数addslashes()
适合版本PHP4、PHP5、PHP7
addslashes ( string $str ) : string
PHP 5.4 之前 PHP 指令 magic_quotes_gpc 默认是 on, 实际上所有的 GET、POST 和 COOKIE 数据都用被 addslashes() 了。 不要对已经被magic_quotes_gpc 转义过的字符串使用 addslashes(),因为这样会导致双层转义。 遇到这种情况时可以使用函数 get_magic_quotes_gpc() 进行检测。即get_magic_quotes_gpc()返回false时,再使用addslashes()进行特殊字符转义。示例如下:
function myaddslashes($data)
{
if(false == get_magic_quotes_gpc())
{
return addslashes($data);//未启用魔术引用时,转义特殊字符
}
return $data;
}

本文介绍在进行数据库查询时如何正确转义特殊字符,包括单引号、双引号及反斜线,防止SQL注入攻击。提供了两种方法:一是利用MySQL库函数如mysql_escape_string与mysqli_real_escape_string;二是使用PHP的addslashes函数,并考虑到magic_quotes_gpc设置的影响。
2276

被折叠的 条评论
为什么被折叠?



