繁体   English   中英

使用mysql_real_escape_string时更多斜杠

[英]More slashes when using mysql_real_escape_string

我对mysql_real_escape_string()函数有点困惑,

我在下面有这个数组并用mysql_real_escape_string()函数过滤它,

$postFields = array('company', 'type');
$postArray = array();
foreach($postFields as $postVal){
    $_POST[$postVal] = array_map("mysql_real_escape_string", $_POST[$postVal]);
    $postArray[$postVal] = $_POST[$postVal];
}

所以结果是这样的,

Array
(
    [type] => Array
        (
            [0] => CD
        )

    [code] => Array
        (
            [0] => \\\'\\\' OR \\\'\\\'
        )
)

但是当我想单独使用它时,

echo mysql_real_escape_string($postArray['company'][0]);

我得到更多的斜线,像这样,

\\\\\\\'\\\\\\\' OR \\\\\\\'\\\\\\\'

任何理由,或者我只是做错了什么。

在您提供的代码中,您将两次转义字符串:

$postFields = array('company', 'type');
$postArray = array();
foreach($postFields as $postVal){
    $_POST[$postVal] = array_map("mysql_real_escape_string", $_POST[$postVal]);
    $postArray[$postVal] = $_POST[$postVal];
}
echo mysql_real_escape_string($postArray['company'][0]);

每次转义字符串时,所有反斜杠都会转义为两个反斜杠。 小心只能逃脱每个字符串一次。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM