使用单个查询插入3个表时,Codeigniter未显示正确的insert_id


Codeigniter not showing correct insert_id while inserting 3 tables with single query

我有这个应用程序,我用一个查询将数据插入到三个表中,但看起来第二个表从第一个表继承了正确的id,但第三个表总是少显示一个(id-1)。例如,如果id是372,它将显示371。

请建议

型号:

function insert_property_details($data) {
    // First Table
    $insert_property_in_database=array(
       'v_item_title'   => $this->input->post('v_item_title'),
       'v_item_category'=> $this->input->post('v_item_category'),
       'v_num_rooms'    => $this->input->post('v_num_rooms'),
       );
       $query=$this->db->insert('vbc_vacation_item_attri',$insert_property_in_database);
    // Second Amenity table
    $insert_property_amenities=array(
       'v_ref_id'       => $this->db->insert_id(),
       'v_aircondition' => $this->input->post('v_aircondition'),
       'v_handy'        => $this->input->post('v_handy'),
       );
       $query=$this->db->insert('vbc_property_amenities',$insert_property_amenities);
    // Third Image table
    $insert_images = array(
        'property_images' => $data['uploadedimage'],
        'property_ref_id'   => $this->db->insert_id(),
        );
        $this->db->insert('vbc_property_images', $insert_images);
        return $this->db->insert_id();
    }

只有一个insert_id(),然后使用变量来获取它,也不需要$query进行插入。

型号:

function insert_property_details($data) {
    // First Table
    $insert_property_in_database = array(
        'v_item_title' => $this->input->post('v_item_title'),
        'v_item_category'=> $this->input->post('v_item_category'),
        'v_num_rooms' => $this->input->post('v_num_rooms'),
    );
    $id = $this->db->insert_id();
    $this->db->insert('vbc_vacation_item_attri',$insert_property_in_database);
    // Or have the id just below first insert
    // $id = $this->db->insert_id();
    // Second Amenity table
    $insert_property_amenities = array(
        'v_ref_id' => $id,
        'v_aircondition' => $this->input->post('v_aircondition'),
        'v_handy' => $this->input->post('v_handy'),
    );
    $this->db->insert('vbc_property_amenities',$insert_property_amenities);
    // Third Image table
    $insert_images = array(
        'property_images' => $data['uploadedimage'],
        'property_ref_id'=> $id,
    );
    $this->db->insert('vbc_property_images', $insert_images);
}