Удалить запись Mysql с помощью массива - PullRequest
0 голосов
/ 08 марта 2012

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

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

Ответы [ 3 ]

3 голосов
/ 08 марта 2012

Не очень знаком с активной записью 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 голос
/ 08 марта 2012

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

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

$this->db->delete()
$this->db->where($id['i_index']); 
0 голосов
/ 03 сентября 2018

Это сообщение датировано, но я решил, что все еще заслуживает лучшего / правильного ответа:

    $this->where_in('id', array(13, 4, 2))->delete('db_table_name');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...