登录  /  注册
mysql_real_escape_string和addslashes的区别
php中文网
发布: 2016-06-07 17:51:48
原创
654人浏览过

本文章详细的以实例和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()) {
$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不考虑连接的当前字符集。

来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 技术文章
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2023 //m.sbmmt.com/ All Rights Reserved | 苏州跃动光标网络科技有限公司 | 苏ICP备2020058653号-1

 | 本站CDN由 数掘科技 提供

登录PHP中文网,和优秀的人一起学习!
全站2000+教程免费学