Skip links

CodeIgniter create duplicate MySQL record

When you need to create duplicate/clone of mysql record in codeigniter this article will be a very useful. This can be used when you need to create a copy of high details of record. Just send 3 parameters to do this.

Put the below function in your model.

function DuplicateRecord($table, $primary_key_field, $primary_key_val) { 
    /* CREATE SELECT QUERY */ 
    $this->db->where($primary_key_field, $primary_key_val); 
    $query = $this->db->get($table); 
    foreach ($query->result() as $row){ 
        foreach($row as $key=>$val) { 
            if($key != $primary_key_field) { 				
                //Below code can be used instead of passing a data array directly to the insert or update functions  
                $this->db->set($key, $val); 
            } //endif 
        } //endforeach 
    } //endforeach 
    
    //insert the new record into table 
    return $this->db->insert($table); 
}

 

Usage

$product_id = $this->input->post('id', TRUE); 
// remove white spaces 
if($product_id) { 
    $result = $this->Product_model->DuplicateRecord($table='product_details', $primary_key_field='product_id', $primary_key_val = $product_id); 
    if ($result) { 
        echo 'Copied Successfully'; 
    } else { 
        echo 'Failed to copy. Try again'; 
    } 
}

 

Use the below comment box to ask your problems and submit your ideas & suggestions.