Подтвердить что ты не робот

Как создать массив вставки пакета Codeigniter

Как создать массив вставки пакета 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
        )
)
4b9b3361

Ответ 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); 

Для получения дополнительной информации прочитайте здесь

Ответ 2

Ваш массив в порядке. Просто поместите свой массив в переменную типа

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

а затем

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

Пожалуйста, дайте мне знать, если у вас возникнут какие-либо проблемы.

Ответ 3

Это ваши данные На контроллере

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

Спасибо

Ответ 4

ваша нормальная структура массива соответствует структуре массива пакетной вставки.

поэтому просто используйте пакетный запрос для вставки данных.

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

$data - ваш обычный массив.