在codeigniter中插入数据库

I wonder why this code is not working :

public function syarat_post()
{
    $this->db->trans_start();
    $jml_syarat = $this->post('jmlsyarat');
    $i = 0;
    while($i < $jml_syarat){
        $syarat_pendaftaran = array(
            "tmpermohonan_id" => $this->post("idpendaf"),
            "trsyarat_perizinan_id" => $this->post("syarat$i")
        );
        $this->db->insert('tmpermohonan_trsyarat_perizinan', $syarat_pendaftaran);
        $i++;
    }
    $this->db->trans_complete();
}

And here is the post :

jmlsyarat=4&syarat0=16&syarat1=31&syarat2=190&syarat3=61&idpendaf=8970

That is created by this function that using curl for execution :

private function syarat($syarat){
    $base_url_websevices = Settings::get('perizinan_online_webservice');
    $this->load->library('curl');
    $this->load->library('xml_parsing_win');
    //$jmlsyarat = $syarat['jmlsyarat'];
    $syaratxml = "";
    $x = 0;
    while($x < $syarat['jmlsyarat']){
        $syaratxml .= "&syarat".$x."=".$syarat['syarat'][$x];
        $x++;
    } 
    $xml = "jmlsyarat=".$syarat['jmlsyarat'].$syaratxml."&idpendaf=".$syarat['idpendaf'];
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, "$base_url_websevices/api/syarat/");
    curl_setopt($ch, CURLOPT_POST, TRUE);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $xml);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
    $result = curl_exec($ch);

    curl_close($ch);
}

Finally, it is not writing to database