首页 文章

如何使用codeigniter在mysql的单列中插入数组数据

提问于
浏览
2

我正在尝试使用codeigniter将数组数据插入数据库 . 当我使用 print_r() fun打印这些值时 .

它显示正确的结果,但是当我单击“保存”按钮时,它会在表格中插入空白值 .

我只是想在处方表中存储多个药物名称,用于特定的prescription_id我试图使用insert_batch函数插入数据,但它保存了空白记录

这是我的型号代码:

public function add_prescription($data) {

    $data['medicine_name'] = $data['medicine_nm[]'];
    print_r($data['medicine_name']);

    $this->db->insert_batch('pre',$data);
     return $this->db->insert_id($pre_id);
  }

控制器代码 -

public function prescription($patient_id = NULL, $app_date = NULL, $hour = NULL , $min = NULL) {

    //Check if user has logged in 
    if (!$this->session->userdata('user_name') || $this->session->userdata('user_name') == '') {
        redirect('login/index/');

    } else {

        if ($this->form_validation->run() === FALSE) {
          $data['medicine_nm[]']=$this->input->post('medicine_nm[]');   
           $this->patient_model->add_prescription($data);
        }
    }
}

2 回答

  • 5

    你需要 json_encode 该数组,然后将其插入数据库中

    $data = json_encode($array);
    
    $this->db->insert('column_name',$data);
    

    虽然取得你需要 decode

    $data = json_decode($column_result);
    

    希望这对你有所帮助 .

  • 1

    试试这个

    public function add_prescription($name) {
    
    
    $data = array(
     'medicine_name' => $name
      );
    
      $query = $this->db->insert('table_name',$data);
    
      return $query->result_array();
     }
    

    希望对你有帮助

相关问题