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

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

我有这个应用程序,我通过一个查询将数据插入到 3 个 table 中,但看起来第二个 table 正在获取从第一个 table 继承的正确 ID,但第三个table 总是少一(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);
}