我有这个循环,它结合了两个数组(问题和注释),我现在想要转义它,所以我可以在注释字段中使用引号和撇号。
$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转义整个数组? 任何帮助将不胜感激!
答案 0 :(得分:0)
顾名思义,mysqli_real_escape_string()
对字符串进行操作 - 您不能一次将整个数组传递给它。您需要循环遍历数组并单独转义每个元素。
答案 1 :(得分:0)
通过简单的while循环解决了这个问题:
$i = 0;
while($i < 30){
$result[$i] = mysqli_real_escape_string($link, $result[$i]);
$i++;
}