【问题标题】:how to insert array data in single column in mysql using codeigniter如何使用codeigniter在mysql的单列中插入数组数据
【发布时间】:2017-01-25 11:15:34
【问题描述】:

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

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

我只想在处方表中存储多个药物名称以获取特定的处方 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);
        }
    }
}

【问题讨论】:

  • 向我们展示您的代码。到目前为止你尝试了什么?
  • 嘿,你的 insert_batch 函数在哪里??
  • 在提交前证明阅读您的问题

标签: php mysql codeigniter


【解决方案1】:

你需要json_encode那个数组,然后像这样将它插入到数据库中

$data = json_encode($array);

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

在获取时你需要decode

$data = json_decode($column_result);

希望对你有所帮助。

【讨论】:

  • 您需要告诉我们它是否不起作用以及您遇到了什么错误
  • 它给出空白视图页面并且数据库列是空的
  • 我们不会返回此处查看页面,因此如果您愿意,您需要通过插入 ID 来处理它,但调试您的问题告诉我它在 $data 中为您提供了什么,如果您在上面 print_r($data);控制器中的模型调用
  • 你也能说出你的型号代码中的$pre_id是什么
【解决方案2】:

试试这个

public function add_prescription($name) {


$data = array(
 'medicine_name' => $name
  );

  $query = $this->db->insert('table_name',$data);

  return $query->result_array();
 }

希望对你有帮助

【讨论】:

  • 不能直接将数组存入数据库,需要将encode数据转为json格式。
  • 好吧,我使用 codeigniter 作为我的框架大约一年了,这对我来说很好!我没有使用该编码为 json 格式的东西,我只是使用手册中的内容
  • 是的,我也试过了,它会产生 500 错误。 @GGsThePlayDude
  • 公共函数处方($patient_id = NULL, $app_date = NULL, $hour = NULL , $min = NULL) { //检查用户是否登录 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); } }
  • 当我使用你的代码时 print_r 会给出这个输出:- Array ([medicine_name] => Array ([0] => sss [1] => vvv)) 但是记录没有插入到表 @ GGsThePlayDude
猜你喜欢
  • 1970-01-01
  • 2015-09-14
  • 1970-01-01
  • 1970-01-01
  • 2022-01-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多