29

如何创建一个 CI 批量插入数组,就像

$data = array(
   array(
      'title' => 'My title' ,
      'name' => 'My Name' ,
      'date' => 'My date'
   ),
   array(
      'title' => 'Another title' ,
      'name' => 'Another Name' ,
      'date' => 'Another date'
   )
);

从我的普通数组中

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
        )
)
4

4 回答 4

76

试试这个:

$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); 

欲了解更多信息,请阅读此处

于 2013-07-26T07:46:58.580 回答
4

这是您 在控制器的数据

$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);

并将数据作为批量插入 在模型中插入

$this->db->insert_batch($table, $data);
于 2017-04-25T13:47:34.840 回答
2

你的数组没问题。只需将您的数组放入一个变量中

$data=array();//put your array

进而

 $this->db->insert_batch('yourTable', $data);

如果您遇到任何问题,请告诉我。

于 2013-07-26T09:17:42.287 回答
0

您的正常数组结构与批量插入的数组结构匹配..

所以只需使用批量插入查询来插入数据。

 $this->db->insert_batch('yourTable', $data);  

$data 是您的普通数组。

于 2013-07-26T07:49:28.833 回答