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
)
)
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
This is your data At 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 insert At Model
$this->db->insert_batch($table, $data);
Your array is ok. Just put your array into a variable like
$data=array();//put your array
and 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.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.