更新我的记录时出错

时间:2018-07-12 11:14:25

标签: php codeigniter codeigniter-3 codeigniter-upload

这是我的控制器:

        public function updatedata($id)
                {
                  //$id=$this->input->get('id');
                  $result['data']=$this->Form_model->displayrecordsById($id);

                      $this->form_validation->set_rules('fname', 'First name', 'required');
                      $this->form_validation->set_rules('lname', 'Last name', 'required');
                      $this->form_validation->set_rules('username', 'Username', 'required|min_length[5]|max_length[12]');
                      $this->form_validation->set_rules('email', 'Email', 'required|valid_email');

                      if ($this->form_validation->run() == FALSE)
                      {
                          $this->load->view('update_records',$result);
                      } 

                      else 
                      {
                          $config['upload_path']   = './uploads/';
                          $config['allowed_types'] = 'gif|jpg|png';
                          $this->load->library('upload', $config);

                              $fn=$this->input->post('fname');
                              $ln=$this->input->post('lname');
                              $un=$this->input->post('username');
                              $em=$this->input->post('email');
                              if($this->upload->do_upload('filename'))
                                   {
                                       $fi= $this->upload->data('file_name');
        //                               $file = ("uploads/".$result['data']->filename);
        //                                //delete the existing file if needed
        //                                if (file_exists($file)) {
        //                                    unlink($file);
        //                                }
                                   }
                              else
                                   {
                                      $fi= $result['data']->filename;
                                   }
                              $this->Form_model->updaterecords($fn,$ln,$un,$em,$fi,$id);
                              echo 'Successfully updated your record';
                              //exit();
                          } 
                      }

im试图更新已经存储在数据库中的数据,它的工作正常,但是面临的问题是,当我不想更新图像部分时,仅在我要更新名字或仅电子邮件时说,它也可以正常工作,但是稍后当我在数据库中看到图像文件名时,该图像文件名也不会显示。

我面临的错误是:

  

遇到PHP错误   严重程度:通知

     

消息:试图获取非对象的属性

     

文件名:controllers / Form.php

     

行号:146

     

回溯:

     

文件:C:\ xampp \ htdocs \ amit \ application \ controllers \ Form.php   线:146   功能:_error_handler

     

文件:C:\ xampp \ htdocs \ amit \ index.php   线:315   功能:require_once

请问有人可以帮我吗,我想从昨天开始解决这个问题,但我不能这样做,请有人可以帮我吗

1 个答案:

答案 0 :(得分:1)

希望这对您有帮助:

第一替换

$fi= $result['data']->filename;

与此

 $fi= $result['data'][0]->filename;

第二:要替换现有映像,您应该像这样在配置中添加$config['overwrite']=TRUE; >

$config['upload_path']   = './uploads/';
$config['allowed_types'] = 'gif|jpg|png';
$config['overwrite'] = TRUE;
$this->load->library('upload', $config);
/*........your other code .........*/

更多信息:https://www.codeigniter.com/user_guide/libraries/file_uploading.html#preferences