我需要修复代码点火器查询

时间:2016-04-13 18:38:43

标签: sql codeigniter codeigniter-2 code-injection

我试图在table3 id数组的基础上从table1和table2获取细节。 table3 id和table1 id在表2中可用。

// $ ids是一个id数组,如:Array([ids] => 10,11)

function get_detail($ids) { 

    $this->db->select('*');
    $this->db->from('table1');
    $this->db->join('table2', 'table1.aID = table2.aID');
    $this->db->join('table3', 'table2.bID = table3.bID','left');
    $this->db->where('table3.bID', $ids); 
    $query = $this->db->get();      

}

3 个答案:

答案 0 :(得分:0)

如果您有多个值,则应使用 IN

替换

$this->db->where();

使用

$this->db->where_in();

两者都采取(col,value);

注意:// $ ids = Array(10,11);

答案 1 :(得分:0)

您好,您可以像这样使用 where_in

function get_detail($ids) { 

    $this->db->select('*');
    $this->db->from('table1');
    $this->db->join('table2', 'table1.aID = table2.aID');
    $this->db->join('table3', 'table2.bID = table3.bID','left');
    $this->db->where_in('table3.bID', $ids); 
    $query = $this->db->get();      

}

注意:以数组格式传递$ ID

$ ids =数组(10,11);

答案 2 :(得分:0)

你可以使用数组

$array = array('name !=' => $name, 'id <' => $id, 'date >' => $date);

$this->db->where($array);