PHP中的MySQL转义码简介(php转义mysql)
MySQL转义码是PHP中专门为MySQL解释器提供的字符,主要用于转义特殊字符,比如单引号,双引号,反斜线,NUL等,以防止MySQL查询字符出现语法错误。
MySQL转义码可以使MySQL语句被准确执行,并且为了提高查询结果的精度,典型的MySQL转义码比如单引号,双引号,反斜线,NUL,等都是需要被转义的。对于特殊字符,MySQL转义码会将它们转义成一个可以被MySQL处理器接受的字符。如:
单引号 : \’
双引号 : \”
反斜杠 : \\
NUL : \0
PHP提供了一个mysql_real_escape_string()函数,可以将字符串中用于MySQL的特殊字符转义成合法的字符。它用于将某一段字符串中的特殊字符转义成可以对MySQL系统安全地存储的字符,下面是一个简单的应用:
//将字符串转义,防止语法错误
$special_str = “what’s wrong with you?”;
$str = mysql_real_escape_string($special_str);
echo $str; //输出 what\’s wrong with you?
?>
mysql_real_escape_string()函数会自动将特殊字符转义,但它不会转义单独的反斜线字符,可以使用addcslashes()函数来手动转义单独的反斜线,例如:
//将字符串转义,防止语法错误
$special_str = “what’s wrong with you? \\”;
$str = addcslashes(mysql_real_escape_string($special_str), “\\”);
echo $str; //输出 what\’s wrong with you? \\\\
?>
总而言之,MySQL转义码可以使MySQL查询字符出现语法错误。PHP提供了mysql_real_escape_string()函数以便于编码或者转义特殊字符,它可以将字符串中用于MySQL的特殊字符转义成合法的字符,而addcslashes()函数可以用于转义单独的反斜线。