mysqli_real_escape_string与php中的数组?

时间:2017-08-12 05:32:25

标签: php mysql arrays function mysqli

我的代码就像这样

 public function addQuestions($data){


    $ans = array();
    $ans[1] = $data['ans1'];
    $ans[2] = $data['ans2'];
    $ans[3] = $data['ans3'];
    $ans[4] = $data['ans4'];
    $ans= mysqli_real_escape_string($this->db->link, $data[$ans]);

}

这是在这个sql函数中使用数组的正确方法吗?

3 个答案:

答案 0 :(得分:3)

由于您希望对数组$ ans的每个元素执行某些操作,因此最适合使用array_map(),如下所示:

public function addQuestions($data){


    $ans = array();
    $ans[1] = $data['ans1'];
    $ans[2] = $data['ans2'];
    $ans[3] = $data['ans3'];
    $ans[4] = $data['ans4'];

    $escaped_ans = array_map(function( $e ) {
             return mysqli_real_escape_string( $this->db->link, $e);
    }, $ans );

答案 1 :(得分:0)

由于你有一个数组,并且你希望数组的每个元素都有mysqli_real_escape_string,你可以使用array_walk()

function myescape($val)
{
    return mysqli_real_escape_string($val);
}

......然后

array_walk($ans, 'myescape');

答案 2 :(得分:0)

如果您使用MYSQL PDO,则不需要添加“mysqli_real_escape_string”,因为绑定后所有变量都是安全的(来自SQL注入)

http://php.net/manual/en/pdostatement.bindparam.php