How can I create a CI batch insert array which is like
$data = array( array( 'title' => 'My title' , 'name' => 'My Name' , 'date' => 'My date' ), array( 'title' => 'Another title' , 'name' => 'Another Name' , 'date' => 'Another date' )
);from my normal array which is
Array
( [0] => Array ( [track_id] => [camp_id] => 1 [field_name] => email_title [field_value] => sample ) [1] => Array ( [track_id] => [camp_id] => 1 [field_name] => email_date [field_value] => 2013-07-02 ) [2] => Array ( [track_id] => [camp_id] => 1 [field_name] => email_template [field_value] => 2 )
) 1 4 Answers
Try this:
$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); For more information, read here
2This is your dataAt Controller
$dataForDb[0]['track_id']=$data['track_id'];
$dataForDb[0]['camp_id']=$data['camp_id'];
$dataForDb[0]['field_name']=$data['field_name'];
$dataForDb[0]['field_value']=$data['field_value'];
$dataForDb[1]['track_id']=$data['track_id'];
$dataForDb[1]['camp_id']=$data['camp_id'];
$dataForDb[1]['field_name']=$data['field_name'];
$dataForDb[1]['field_value']=$data['field_value'];
$dataForDb[2]['track_id']=$data['track_id'];
$dataForDb[2]['camp_id']=$data['camp_id'];
$dataForDb[2]['field_name']=$data['field_name'];
$dataForDb[2]['field_value']=$data['field_value'];
$fid=$this->model_modelName->functionName($dataForDb);And insert data as batch insertAt Model
$this->db->insert_batch($table, $data); Your array is ok. Just put your array into a variable like
$data=array();//put your arrayand then
$this->db->insert_batch('yourTable', $data);Please let me know if you face any problem.
your normal array structure matchs with the array stucture of batch insert..
so just use batch insert query to insert the data.
$this->db->insert_batch('yourTable', $data); $data is your normal array.