函数定义
string addslashes ( string $str)
参数
-
str
- 要转义的字符
返回值
返回转义后的字符。
说明
返回字符串,该字符串为了数据库查询语句等的需要在某些字符前加上了反斜线。这些字符是单引号(’)、双引号(”)、反斜线(\)与 NUL(NULL 字符)。
为什么要将入库的数据进行转义?为了防止sql注入。
当要往数据库中输入数据时,如包含以上字符(’, “, , NULL字符)的字符串,这就需要对其进行转义。强烈建议使用DBMS的转义函数(如mysql的是mysqli_real_escape_string(), PostgreSQL是pg_escape_string())。但是如果使用的DBMS没有一个转义函数,并且使用 \ 来转义特殊字符,就可以使用这个函数。 仅仅是为了获取插入数据库的数据,额外的 \ 并不会插入。
当PHP指令magic_quotes_sybase=on时,意味着插入 ’ 时将使用 ’ 进行转义。
注意
PHP 5.3及之前版本:magic_quots_gps模式是on,不要对已经被magic_quotes_gpc转义过的字符串使用addslashes(),这样会导致双层转义。在使用addslashes()之前应该先使用get_magic_quotes_gpc()进行检测。
PHP 5.4及之后版本:magic_quotes_gpc配置已经被废弃,所有的GET、POST、COOKIE数据都已被addslashes()了。转义检测函数get_magic_quotes_gpc()也已经被废除,将始终返回false。