转义数组可以清除值

时间:2013-06-18 17:34:03

标签: php mysqli escaping

我有这个循环,它结合了两个数组(问题和注释),我现在想要转义它,所以我可以在注释字段中使用引号和撇号。

$result = array();

    foreach ($questions as $key => $value){

        $value = mysqli_real_escape_string($value);

        if (array_key_exists($key, $comments)){

            $comments = mysqli_real_escape_string($comments);

            $result[$key] = "$value~ {$comments[$key]}";

        }else{

            @$result[$key] = "$value~ ";

             }

    }

出于某种原因,mysqli_real_escape_string正在淘汰这些值(只留下分隔符(〜))。

我在循环外尝试了array_map / array_walk和array_keys,但效果相同:

$comments = array_map("mysqli_real_escape_string", array_keys($comments));

mysql_real_escape_string() for entire $_REQUEST array, or need to loop through it?

i want to check array's data with mysql_real_escape_string() function

如何使用mysqli_real_ecape_string转义整个数组? 任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:0)

顾名思义,mysqli_real_escape_string()对字符串进行操作 - 您不能一次将整个数组传递给它。您需要循环遍历数组并单独转义每个元素。

答案 1 :(得分:0)

通过简单的while循环解决了这个问题:

    $i = 0;
    while($i < 30){
    $result[$i] = mysqli_real_escape_string($link, $result[$i]);
    $i++;
    }