如何创建Codeigniter批量插入数组

30

我该如何创建一个类似以下的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
        )
)

现有数组存在什么问题? - Hemantwagh07
4个回答

82

试试这个:

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

点击这里了解更多信息。


请问您可以加上如何使用循环来获取这个数组的内容吗? - always-a-learner
1
如果您在这里并且不知道如何获取此数组,请查看此链接:link - always-a-learner

6

这是您的数据 在控制器上

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

3
您的数组没问题。只需将其放入变量中,例如:
$data=array();//put your array

然后

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

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


0

你的普通数组结构与批量插入的数组结构匹配。

因此,只需使用批量插入查询来插入数据即可。

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

$data 是您的普通数组。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接