我正在尝试使用codeigniter
删除多个记录$this->db->delete() and $this->db->where()
我想删除像
这样的数组的记录$id =array(
0=>'13', //13 is the id
1=>'4', //4 is the id
2=>'2' //2 is the id
);
数组由用户生成,因此它将是动态的。 我只想知道codeigniter是否可以将数组作为delete方法中的一个选项。
根据这个。 http://codeigniter.com/user_guide/database/active_record.html
数组在以下方法中不起作用。
$this->db->delete()
$this->db->where('id', $id); //I don't think I can do this.
我可以使用foreach循环,但在我看来有更好的方法。我想知道是否有人可以帮助我。非常感谢。
答案 0 :(得分:3)
不熟悉codeigniters活跃记录,但我相信你想要的是:
$sql = "DELETE FROM tbl WHERE id IN (".implode(',',$idsToDelete.");";
$this->db->query($sql);
对于有效记录,这可能会更好:
$this->db->where('IN ('.implode(',',$idsToDelete).')', NULL, FALSE);
$this->db->delete();
答案 1 :(得分:1)
真正接受数组作为参数的方法吗?
我认为您的源代码应该是:
$this->db->delete()
$this->db->where($id['i_index']);
答案 2 :(得分:0)
此文章已过时,但我认为仍然应该得到最佳/正确答案:
$this->where_in('id', array(13, 4, 2))->delete('db_table_name');