【问题标题】:How to create Codeigniter batch insert array如何创建 Codeigniter 批量插入数组
【发布时间】:2013-07-26 09:21:48
【问题描述】:

如何创建类似于

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

【问题讨论】:

  • 现有数组有什么问题?

标签: php codeigniter activerecord


【解决方案1】:

试试这个:

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

欲了解更多信息,请阅读here

【讨论】:

  • 你能补充一下如何使用循环获取这个数组吗?
  • 如果您在这里但不知道如何获取此数组,请参阅此link
【解决方案2】:

这是您的数据 在控制器处

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

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

    【讨论】:

      【解决方案4】:

      您的普通数组结构与批量插入的数组结构匹配..

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

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

      $data 是你的普通数组。

      【讨论】:

        猜你喜欢
        • 2017-08-19
        • 1970-01-01
        • 1970-01-01
        • 2012-01-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-10-02
        相关资源
        最近更新 更多