2013-03-05 4 views
0

Я импорт CSV в MySQL после загрузки в CakePHP 1.3 С помощью этой функции загрузки и импорта CSV в MySQL с CakePHP 2.3 ошибки

function uploadCsv(){ 
    if (!empty($this->data)) { 
     $csvFile = $this->Upload->csvUpload('files/assessments/csv', $this->data['Assessment']['csv']);// upload avata and the image path to the form array; ready to be served 
     // unset($this->data['Assessment']['csv']); 
      if(isset($csvFile['path'])) { 
       $file = $csvFile['path']; 
        $delimiter = ','; 
         if (($handle = fopen($file, "r")) !== FALSE) { 
         $i = 0; 
         while (($lineArray = fgetcsv($handle, 4000, $delimiter)) !== FALSE) { 
          for ($j=0; $j<count($lineArray); $j++) { 
           $data2DArray[$i][$j] = $lineArray[$j]; 
           } 
          $i++; 
          } 
          fclose($handle); 
         } 
         //return $data2DArray;$i = 0; 
         foreach($data2DArray as $csv){ 
          $this->data['Assessment'][$i]['id'] = ''; 
          $this->data['Assessment'][$i]['test1'] = $csv[0]; 
          $this->data['Assessment'][$i]['test2'] = $csv[1]; 
          $this->data['Assessment'][$i]['ass1'] = $csv[2]; 
          $this->data['Assessment'][$i]['ass2'] = $csv[3]; 
          $this->data['Assessment'][$i]['ass3'] = $csv[4]; 
          $this->data['Assessment'][$i]['ca1'] = $csv[5]; 
          $this->data['Assessment'][$i]['ca2'] = $csv[6]; 
          $this->data['Assessment'][$i]['exams'] = $csv[7]; 
          $this->data['Assessment'][$i]['total'] = $csv[8]; 
          $this->data['Assessment'][$i]['subject_id'] = $csv[9]; 
          $this->data['Assessment'][$i]['student_id'] = $csv[10]; 
          $this->data['Assessment'][$i]['my_classes_student_id'] = $csv[11]; 
          $i++; 
          } 
        $this->Assessment->create(); 
         if ($this->Assessment->saveAll($this->data['Assessment'])) { 
          $this->Session->setFlash(__('The assessment has been saved', true)); 
          //$this->redirect(array('action' => 'index')); 
         } else { 
          $this->Session->setFlash(__('The assessment could not be saved. Please, try again.', true)); 
         } 
      $this->set('data', $this->data['Assessment']); 

     }else{ 

      $this->set('errors', $csvFile['errors']); 

      } 

    }// end of $thid->data check 
} 

Но я получил эту ошибку:

Fatal Error 
Error: ReflectionClass::getProperties() [<a href='http://php.net/reflectionclass.getproperties'>reflectionclass.getproperties</a>]: 
Internal error: Failed to retrieve the reflection object 
File: C:\wamp\www\csm\lib\Cake\Utility\Debugger.php 
Line: 593 

Notice: If you want to customize this error message, create app\View\Errors\fatal_error.ctp 

после обновления to cakephp 2.3

Мне нужна помощь в этом.

+0

спасибо, хотя я не имел никакого ответа, но я предполагаю, что кто-то может иметь подобную проблему, CakePHP 2.3 с помощью $ this-> request-> данные вместо $ this-> данных, поэтому я просто изменил $ this-> data на $ this-> request-> data и начал работу –

ответ

0

спасибо, хотя у меня не было ответа, но я предполагаю, что у кого-то может быть аналогичная проблема, cakephp 2.3 использует $ this-> request-> data вместо $ this-> data, поэтому я просто изменил $ this-> data на $ this -> request-> данные и приступили к работе

function uploadCsv(){ 
    if (!empty($this->data)) { 
     $csvFile = $this->Upload->csvUpload('files/assessments/csv', $this->data['Assessment']['csv']);// upload avata and the image path to the form array; ready to be served 
     unset($this->request->data['Assessment']['csv']); 
      if(isset($csvFile['path'])) { 
       $file = $csvFile['path']; 
        $delimiter = ','; 
         if (($handle = fopen($file, "r")) !== FALSE) { 
         $i = 0; 
         while (($lineArray = fgetcsv($handle, 4000, $delimiter)) !== FALSE) { 
          for ($j=0; $j<count($lineArray); $j++) { 
           $data2DArray[$i][$j] = $lineArray[$j]; 
           } 
          $i++; 
          } 
          fclose($handle); 


         } 
         //return $data2DArray; 
         $i = 0; 
         foreach($data2DArray as $csv){ 
          $this->request->data['Assessment'][$i]['id'] = ''; 
          $this->request->data['Assessment'][$i]['test1'] = $csv[0]; 
          $this->request->data['Assessment'][$i]['test2'] = $csv[1]; 
          $this->request->data['Assessment'][$i]['ass1'] = $csv[2]; 
          $this->request->data['Assessment'][$i]['ass2'] = $csv[3]; 
          $this->request->data['Assessment'][$i]['ass3'] = $csv[4]; 
          $this->request->data['Assessment'][$i]['ca1'] = $csv[5]; 
          $this->request->data['Assessment'][$i]['ca2'] = $csv[6]; 
          $this->request->data['Assessment'][$i]['exams'] = $csv[7]; 
          $this->request->data['Assessment'][$i]['total'] = $csv[8]; 
          $this->request->data['Assessment'][$i]['subject_id'] = $csv[9]; 
          $this->request->data['Assessment'][$i]['student_id'] = $csv[10]; 
          $this->request->data['Assessment'][$i]['my_classes_student_id'] = $csv[11]; 
          $i++; 
          } 

       $this->Assessment->create(); 
         if ($this->Assessment->saveAll($this->data['Assessment'])) { 
          $this->Session->setFlash(__('The assessment has been saved', true)); 
          //$this->redirect(array('action' => 'index')); 
         } else { 
          $this->Session->setFlash(__('The assessment could not be saved. Please, try again.', true)); 
         } 
      $this->set('data', $this->data['Assessment']); 

     }else{ 

      $this->set('errors', $csvFile['errors']); 

      } 

    }// end of $thid->data check 
} 
+0

. Прочтите это руководство [CSV Import codeigniter] (http://www.twotutorial.com/2016/03/how -в-Import-CSV-файл-в-MySQL-using.html). Надеюсь, что это поможет вам. – NomanJaved

 Смежные вопросы

  • Нет связанных вопросов^_^