簡體   English   中英

Save()不使用Codeigniter更新DataMapper中表中的數據

[英]Save() is not updating data in table in datamapper with codeigniter

嗨,我是Codeigniter的新手,我已經編寫了代碼來更新一個表數據,但是它在數據庫表中沒有更新,並且是火插入查詢而不是update。

這是我的控制器方法客戶是表

public function editClients($id="")
        {
            Auth::RequireFleetindia();
            $this->template->set("fleet_india");
            $this->template->setData("SelectedTab", "Clients");

            $this->Clientsedit = new Clients();
            $this->Clientsedit->where(array("account_id"=> Auth::get("id"),'ID'=>$id))->get();

            if(isset($_POST['Submit']))
            {   echo $this->Clientsedit->ID;
                $this->load->library('form_validation');
                $this->form_validation->set_rules('clientname', 'Client Name', 'required');
                $this->form_validation->set_rules('address', 'Address', 'required');
                $is_unique='';
                if($this->input->post('clientemail') != $this->Clientsedit->email) 
                {
                       $is_unique =  '|is_unique[clients.email]';

                } 
                $this->form_validation->set_rules('clientemail', 'Client Email', 'required|valid_email'.$is_unique);

                $this->form_validation->set_rules('daily_rate', 'Daily Rate', 'numeric');
                $this->form_validation->set_rules('daily_contract_mileage', 'Daily Contract Mileage', 'numeric');
                $this->form_validation->set_rules('excess_mileage_rate', 'Excess Mileage Rate', 'numeric');
                $this->form_validation->set_rules('daily_contract_time', 'Daily Contract Time', 'numeric');
                $this->form_validation->set_rules('overtime_rate', 'Overtime_Rate', 'numeric');
                $this->form_validation->set_rules('night_shift_rate', 'Night Shift Rate', 'numeric');
                $this->form_validation->set_rules('overtime_incentives', 'Overtime Incentives', 'numeric');
                $this->form_validation->set_rules('taxrate1', 'Tax Rate', 'numeric');
                $this->form_validation->set_rules('taxrate2', 'Tax Rate', 'numeric');



                if($this->form_validation->run() != FALSE)
                {
                    $this->Clientsedit->client_name             =   $this->input->post('clientname');
                    $this->Clientsedit->address                 =   $this->input->post('address');
                    $this->Clientsedit->email                   =   $this->input->post('clientemail');
                    $this->Clientsedit->daily_rate              =   $this->input->post('daily_rate');
                    $this->Clientsedit->daily_contract_mileage  =   $this->input->post('daily_contract_mileage');
                    $this->Clientsedit->excess_mileage_rate     =   $this->input->post('excess_mileage_rate');
                    $this->Clientsedit->daily_contract_time     =   $this->input->post('daily_contract_time');
                    $this->Clientsedit->overtime_rate           =   $this->input->post('overtime_rate');
                    $this->Clientsedit->night_shift_rate        =   $this->input->post('night_shift_rate');
                    $this->Clientsedit->overtime_incentives     =   $this->input->post('overtime_incentives');
                    $this->Clientsedit->taxrate1                =   $this->input->post('taxrate1');
                    $this->Clientsedit->taxrate2                =   $this->input->post('taxrate2');


                    if($this->Clientsedit->save())
                    {
                        echo '<pre>';
                        print_r($this->Clientsedit);
                        echo '</pre>';
                        $this->session->set_flashdata('msg', 'Client Updated');
                        //redirect("fleet_india_client/editClients","refresh");
                    }
                    else
                    {
                        $error = $this->Clientsedit->error->string;
                        echo $error;
                        echo $this->Clientsedit->address ;
                        //redirect("fleet_india_client/editClients","refresh");
                    }

                }
                else
                {
                    //$this->load->view("fleet_india/clients/editClients");
                }
            }
            else
            {
                $this->load->view("fleet_india/clients/editClients");
            }
        }  

我發現錯誤是數據庫中的表存在問題。 我尚未將主鍵設置為id,這就是為什么它不更新需要為要使用數據映射器更新表中任何記錄的字段設置主鍵的原因。

感謝大家的評論。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM