Search code examples
codeigniteractiverecordcodeigniter-2

CodeIgniter: INSERT multiple records without cycle


It's possible to use multiple INSERT records in CodeIgniter Active Record without for, foreach and etc. ?

My current code:

foreach($tags as $tag) {
    $tag = trim($tag);
    $data = array(
        'topic_id'  =>  $topic_id,
        'user_id'   =>  $user_id,
        'text'      =>  $tag
    );
    $this->db->insert('topic_tags', $data);
}

Solution

  • Codeigniter active record has a function insert_batch i think that is what you need

    $data = array(
       array(
          'title' => 'My title' ,
          'name' => 'My Name' ,
          'date' => 'My date'
       ),
       array(
          'title' => 'Another title' ,
          'name' => 'Another Name' ,
          'date' => 'Another date'
       )
    );
    
    $this->db->insert_batch('mytable', $data); 
    
    // Produces: INSERT INTO mytable (title, name, date) VALUES ('My title', 'My name', 'My date'), ('Another title', 'Another name', 'Another date')
    

    Works for both Codeigniter 3.x and Codeigniter 2.2.6

    UPDATED LINKS

    insert_batch() for Codeigniter 3.x

    insert_batch() for Codeigniter 2.x