2012-03-07 3 views
0

Я пытаюсь удалить несколько запись (ы) с помощью CodeIgniterУдалить Mysql запись с помощью массива

$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 взять массив в качестве опции в методе удаления.

В соответствии с этим. 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 для петли, но мне кажется, что есть лучшие способы. Мне было интересно, может ли кто-нибудь помочь мне в этом. Большое спасибо.

ответ

2

не очень знаком с codeigniters активной записью, но я считаю, что STMT вы хотели бы это:

$sql = "DELETE FROM tbl WHERE id IN (".implode(',',$idsToDelete.");"; 
$this->db->query($sql); 

Это может работать лучше с активной записью :

$this->db->where('IN ('.implode(',',$idsToDelete).')', NULL, FALSE); 
$this->db->delete(); 
+0

Вы можете цепи ваши действия:. $ this-> db-> где ('IN (' .implode (' ' $ idsToDelete)')', NULL, F ALSE) -> Удалить() –

1

Метод, в котором действительно принимается массив в качестве параметра?

Я думаю, что ваш исходный код должен выглядеть:

$this->db->delete() 
$this->db->where($id['i_index']); 
Смежные вопросы