当用户提交表单时创建一个自动递增的 id

Creating an auto incremented id when user submits a form

目前我有一个refno。我数据库中的列,格式为 LP00001。现在我有一个添加页面,用于插入用户在输入字段中插入的所有数据,所有这些数据都发送到我数据库中的 table,但我的 refno 列保持为空,我希望它有一个自动递增的值每次用户提交表单时,最后 5 位数字将为 +1。

我不想让它显示在提交按钮之前,因为 2 个用户可以同时在该页面上,这意味着他们都将获得相同的 ID,这意味着它只能在当时生成它的提交。目前这是我的代码:

控制器class:

if ($this->form_validation->run() == FALSE)
        {
            $main['page'] = 'crm/listings/add';
            $this->load->view('crm/index', $main);
        }else {  
            $maindata=array('clients_id'=>$this->session->userdata('clientsessid'),
            'property_for'=>$this->security->xss_clean($this->input->post('property_for')),
            'property_type'=>$this->security->xss_clean($this->input->post('property_type')));
            $insertid=$this->listings_model->insert_listing($maindata);
            if($insertid){
                $this->session->set_flashdata('message', '<div>Successfully</div>');
                redirect('listings/sales');

型号Class:

function insert_listing($maindata){
    $this->db->insert("crm_listings",$maindata);
    $prime=$this->db->insert_id();
    return $prime;
}

所以我假设我需要在我的模型 class 函数 insert_listing 中执行此操作,因为当我按下提交按钮时会调用它。这里的另一件事是模型必须检查数据库中最后一个必须增加的条目是什么,我假设我必须使用 echo str_replace("LP","","LP00001");

我猜你只需要在返回的 autoIncremented id.

前加上首字母 LP
function insert_listing($maindata){
    // ...

    $this->db->set("refno", "LP". sprintf('%05d', $prime));
    $this->db->where('id', $prime);
    $this->db->update("crm_listings");

    return $prime;
}