本函数将 unescaped_string 转义,使之可以安全用于 mysql_query()。
Note: mysql_escape_string() 并不转义 % 和 _。 本函数和 mysql_real_escape_string() 完全一样,除了 mysql_real_escape_string() 接受的是一个连接句柄并根据当前字符集转移字符串之外。mysql_escape_string() 并不接受连接参数,也不管当前字符集设定。
2、string mysql_real_escape_string ( string $unescaped_string [, resource $link_identifier ] )
本函数将 unescaped_string 中的特殊字符转义,并计及连接的当前字符集,因此可以安全用于 mysql_query()。
Note: mysql_real_escape_string() 并不转义 % 和 _。
thinkphp2.1中使用string mysql_escape_string(string $unescaped_string);
mysql_escape_string()函数的调用在
Db::select();
Db::parseWhere();
Db::parseValue();
转到DbMysql.class.php
DbMysql::escape_string();
中
ecmall2.2.1用addslashes();
在ECMall::startup();中有以下代码
if (!get_magic_quotes_gpc())
{
$_GET = addslashes_deep($_GET);
$_POST = addslashes_deep($_POST);
$_COOKIE= addslashes_deep($_COOKIE);
}
在ecmall.php文件中有以下普通函数
function addslashes_deep($value)
{
if (empty($value))
{
return $value;
}
else
{
//array_map — 将回调函数作用到给定数组的单元上
return is_array($value) ? array_map('addslashes_deep', $value) : addslashes($value);
}
}
在ecmall2.2.1的mysql.php文件中还有以下函数
function escape_string($unescaped_string)
{
if (PHP_VERSION >= '4.3')
{
return mysql_real_escape_string($unescaped_string);
}
else
{
return mysql_escape_string($unescaped_string);
}
}