mysql_real_escape_string和addslashes的区别
发布:smiling 来源: PHP粉丝网 添加日期:2014-10-13 13:45:57 浏览: 评论:0
本文章详细的以实例和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() 例子,代码如下:
- <?php
- $item = "Zak’s and Derick’s Laptop";
- $escaped_item = mysql_real_escape_string($item);
- printf ("Escaped string: %sn", $escaped_item);
- ?>
- //以上例子将产生如下输出:
- //phpfensi.com
- 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()) {
- $lastname = addslashes($_POST[‘lastname’]);
- } else {
- $lastname = $_POST[‘lastname’];
- }
最好对magic_quotes_gpc已经开放的情况下,还是对$_POST[’lastname’]进行检查一下,再说下mysql_real_escape_string和mysql_escape_string这2个函数的区别:
mysql_real_escape_string 必须在(PHP 4 >= 4.3.0, PHP 5)的情况下才能使用,否则只能用 mysql_escape_string,两者的区别是:
mysql_real_escape_string 考虑到连接的当前字符集,而mysql_escape_string 不考虑.
手册上addslashes转义的字符是单引号(')、双引号(")、反斜线()与NUL(NULL 字符)。
mysql_real_escape_string转义的字符并没有被提到.只是说了一句.
注意:mysql_real_escape_string() 并不转义% 和_。
为什么PHP手册没有说呢?因为其实这是个MySql的C的API.所以我们需要查下MySql手册..上面是这么说的.
编码的字符为NUL (ASCII 0)、'n'、'r'、''、'''、'"'、以及Control-Z(请参见9.1节,“文字值”)。(严格地讲,MySQL仅需要反斜杠和引号字符,用于引用转义查询中的字符串。该函数能引用其他字符,从而使得它们在日志文件中具有更好的可读性)。
总结:
* addslashes() 是强行加;
* mysql_real_escape_string() 会判断字符集,但是对PHP版本有要求;
* mysql_escape_string不考虑连接的当前字符集。
Tags: mysql_real_escape_string addslashes
相关文章
- ·php中array_map() 调用 mysql_real_escape_string 清理数组(2014-08-01)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)