本文章详细的以实例和php手册详细的介绍了关于mysql_real_escape_string和addslashes的区别。
说明string mysql_real_escape_string ( string $unescaped_string [, resource $link_identifier ] )
本函数将 中的特殊字符转义,并计及连接的当前字符集,因此可以安全用于 mysql_query()。
Note: mysql_real_escape_string() 并不转义 和 。
Example #1 mysql_real_escape_string() 例子
代码如下 | 复制代码 |
$item = "Zak’s and Derick’s Laptop"; $escaped_item = mysql_real_escape_string($item); printf ("Escaped string: %sn", $escaped_item); ?> |
以上例子将产生如下输出:
Escaped string: Zak’s and Derick’s Laptop
参见
mysql_escape_string() 和 mysql_character_set_name()。
网站分享的关于 addslashes与mysql_real_escape_string的区别
代码如下 | 复制代码 | ||||
if (!get_magic_quotes_gpc()) {
} else { $lastname = $_POST[‘lastname’];} |
mysql_real_escape_string 必须在(PHP 4 >= 4.3.0, PHP 5)的情况下才能使用。否则只能用 mysql_escape_string ,两者的区别是:
mysql_real_escape_string 考虑到连接的当前字符集,而mysql_escape_string 不考虑
mysql_real_escape_string转义的字符并没有被提到.只是说了一句
注意: mysql_real_escape_string() 并不转义% 和_。
为什么PHP手册没有说呢?因为其实这是个MySql的C的API.所以我们需要查下MySql手册..上面是这么说的.
编码的字符为NUL (ASCII 0)、'n'、'r'、''、'''、'"'、以及Control-Z(请参见9.1节,“文字值”)。(严格地讲,MySQL仅需要反斜杠和引号字符,用于引用转义查询中的字符串。该函数能引用其他字符,从而使得它们在日志文件中具有更好的可读性)。
总结: