我的代码就像这样
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函数中使用数组的正确方法吗?
答案 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注入)