2015-06-15 8 views
1

Я хочу вставить данные в массив из формата массива, подобного этому с помощью фреймворков codeigniter.Вставить данные из массива в базу данных на Codeigniter

Array ([run_date] => Array ([0] => 2015-06-15 11:10 [1] => 2015-06-15 11:10 [2] => 2015-06-15 11:10 [3] => 2015-06-15 11:10) [msisdn] => Array ([0] => 8499270093 [1] => 8599387282 [2] => 6281019183 [3] => 8597375112)) 

Я пытаюсь использовать команду insert_batch для codeigniter, но это вообще не работает. таких как ниже.

Мой контроллер

function insertFromConfirmation() { 
    $datanew = array(
     'run_date' => $this->input->post('run_date'), 
     'msisdn' => $this->input->post('msisdn') 
    ); 

    print_r($datanew); 
    $this->modelMsisdn->insertDataArray($datanew); 

} 

и My Model

public function insertDataArray($datanew) { 
    $this->db->insert_batch('subscription_renewal', $datanew); 
} 

Ошибка Показано:

Error Number: 1054 Unknown column '0' in 'field list' INSERT INTO `subscription_renewal` (`0`, `1`, `2`, `3`) VALUES ('2015-06-15 11:10','2015-06-15 11:10','2015-06-15 11:10','2015-06-15 11:10'), ('8499270093','8599387282','6281019183','8597375112') 

Имя файла: C: \ XAMPP \ HTDOCS \ msisdn_tools_new \ система \ базы данных \ DB_driver. php Номер строки: 330

Структура таблицы

 CREATE TABLE subscription_renewal (
    id int(11) NOT NULL AUTO_INCREMENT, 
    msisdn varchar(32) CHARACTER SET utf8 NOT NULL, 
    service varchar(64) CHARACTER SET utf8 NOT NULL, 
    adn varchar(8) CHARACTER SET utf8 NOT NULL, 
    operator varchar(32) CHARACTER SET utf8 NOT NULL, 
    channel varchar(16) CHARACTER SET utf8 NOT NULL, 
    status tinyint(4) NOT NULL, 
    description varchar(20) CHARACTER SET utf8 DEFAULT NULL, 
    blacklist_status tinyint(4) NOT NULL, 
    date_created datetime NOT NULL, 
    date_modified datetime NOT NULL, 
    run_date datetime DEFAULT NULL, 
    price varchar(30) DEFAULT NULL, 
    PRIMARY KEY (id) 
) ENGINE=InnoDB AUTO_INCREMENT=476 DEFAULT CHARSET=latin1

+0

'(«0», ' 1 ',' 2 ',' 3 ') 'проверить имена таблиц базы данных корректно –

+0

да, это поле не так, как показано на рисунке, но я хочу знать, как этот формат массива вставлен в базу данных –

+0

вы можете показать мне свою таблица структурирования –

ответ

2

Вставка партии матричная структура ищет неправильно, вы должны передать входные данные в набор массива каждой строки ... см пример структуры массива

$run_date = $this->input->post('run_date'); 
$msisdn = $this->input->post('msisdn'); 
$datanew = array(); 
foreach($run_date as $k => $v){ 
     $datanew[] = array(
      'run_date' => $v, 
      'msisdn' => $msisdn[$i] //suppose $msisdn[] have also same key length as $run_date[] array 
      ); 
} 
$this->modelMsisdn->insertDataArray($datanew); 
+0

i ' ве пчела с помощью этого один также и получил ниже Номер ошибки Error: 1054 Неизвестный столбец 'Массив' в 'списке поля' INSERT INTO 'subscription_renewal' (' run_date', 'msisdn') VALUES (Array, Array) –

+0

Мне нужно знать, как отформатировать такой массив, потому что для формы, которую я использую с именем = "rund_date []", задан массив, подобный выше, я спрашиваю: –

+0

вы используете неправильный массив массивов строк, массив переназначения в правильную структуру, см. обновленный цикл цикла foreach – Girish

Смежные вопросы