Вставить несколько строк на сервер SQL - PullRequest
0 голосов
/ 19 сентября 2019

Я хочу вставить несколько строк в таблицу.Но всегда получаю 500 Внутренняя ошибка сервера, когда я ее вставляю.Кто-нибудь может мне помочь, что не так с моим кодом?

Вот мой контроллер

  $data = array(
  'NumberOfPlacement' => $_POST['hidden_total'],
  'ExpectedWorkStartDate' => $_POST['hidden_workdate'],
  'CreatedDate' => date("Y-m-d")
);
 $res= $this->hire_model()->InsertData('dbo.RequisitionTable', $data);
if ($res) {
  echo json_encode(array('status' => true));
}else
echo json_encode(array('status'=>false));
}

Моя модель

public function InsertData($tabelName, $data){
$res = $this->db->insert($tabelName, $data);
return $res;
}

Вот мои данные.Его содержат 2 данных

 array(4) {
  ["NumberOfPlacement"]=>
  array(2) {
  [0]=>
  string(1) "1"
  [1]=>
  string(1) "3"
 }
 ["ExpectedWorkStartDate"]=>
 array(2) {
 [0]=>
 string(10) "2019-09-24"
 [1]=>
 string(10) "2019-09-25"
 }
 ["CreatedDate"]=>
 string(10) "2019-09-19"
 }

Ответы [ 3 ]

0 голосов
/ 19 сентября 2019

правильно ли вы загрузили свою модель hire_model .. просто проверьте ее .. и если НЕТ, замените

 $res= $this->hire_model()->InsertData('dbo.RequisitionTable', $data); 

на

$res= $this->load->mdoel('hire_model');
 $this->hire_model->InsertData('dbo.RequisitionTable', $data); 

и переформатируйте ваши данные для вставки в БД, например

$data = array(
 array(
  'NumberOfPlacement' => $_POST['hidden_total'],
  'ExpectedWorkStartDate' => $_POST['hidden_workdate'],
  'CreatedDate' => date("Y-m-d")
 ),
 array(
  'NumberOfPlacement' => $_POST['hidden_total'],
  'ExpectedWorkStartDate' => $_POST['hidden_workdate'],
  'CreatedDate' => date("Y-m-d")
 )
);

чем у вас hire_model Метод InsertData:

public function InsertData($tabelName = '', $data = array()){ 
   $this->db->insert_batch($tabelName, $data); // insert_batch is codeigniter method to insert multiple data
}
0 голосов
/ 27 сентября 2019

В контроллере

$data = array('NumberOfPlacement' => $_POST['hidden_total'], 'ExpectedWorkStartDate' => $_POST['hidden_workdate'], 'CreatedDate' => date("Y-m-d"));

$res = $this->hire_model->InsertData($data);

В вашей модели

public function InsertData($data){ $res = $this->db->insert('table name', $data); return $res; }

используйте строчные символы для полей таблицы.

0 голосов
/ 19 сентября 2019

Попробуйте:

$data = array(
  'NumberOfPlacement' => serialize($_POST['hidden_total']),
  'ExpectedWorkStartDate' => serialize($_POST['hidden_workdate']),
  'CreatedDate' => date("Y-m-d")
);

Когда вы получаете данные, попробуйте unserialize ().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...