Codeigniter:如何使用insert_id成功将引用的ID插入到另一个表中?

时间:2017-05-27 16:56:31

标签: php mysql codeigniter

我有两张桌子

访问 - id | visit_date | patient_id |笔记| staff_id

visits_procedures - id | visit_id | procedure_id |量

visits_procedures表用于跟踪访问期间执行的过程数。如果我将数据插入到访问表中,它可以正常工作。但是,当我将数据插入到visits_procedures表中时,它无法按预期工作。例如,如果最后一次visit.id = 3,则当我将数据插入到visits_procedures表中时,visit_procedures.visit_id的值也应该是3。但是,当我向visits_procedures表提交数据时,它将visits_procedures.visit_id作为4,因为在访问表中添加了一行,主键自动递增,其他列的值为零。

请您帮我提出一个能按预期工作的解决方案。这是我的代码。

MY_Model

public function insert($data) {

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

        return $this->db->insert_id();

    }

VisitProcedures控制器

function __construct() {

        parent::__construct();

        $this->load->model(array('admin/vprocedure'));

        $this->load->model(array('admin/procedure'));

        $this->load->model(array('admin/visit'));
}

public function create() {

        if ($this->input->post('procedure_id')) {

            $visit_id = $this->visit->insert($data);

            $data['visit_id'] = $visit_id;

            $data['procedure_id'] = $this->input->post('procedure_id');

            $data['quantity'] = $this->input->post('quantity');

                 $this->vprocedure->insert($data);

                 redirect('/admin/visit-procedures', 'refresh');

        }

        $procedures = $this->procedure->get_all();

        $data['procedures'] = $procedures;

            .
            .//load view code
            .
}

Visit_model

class Visit extends MY_Model {

    public function __construct() {  

        parent::__construct();
    }

    public function insertar($data) {

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

        $latest_id = $this->db->insert_id();

        return $latest_id;

    }
}

0 个答案:

没有答案