2015-02-28 15 views
5

का उपयोग कर MySQL पर CSV फ़ाइल अपलोड करें मैं लार्वेल में users तालिका में csv फ़ाइल अपलोड करने का प्रयास कर रहा हूं।लार्वेल

यह मेरा php स्क्रिप्ट है:

private function _import_csv($path, $filename) 
    { 

     $csv = $path . $filename; 
     $query = sprintf("LOAD DATA local INFILE '%s' INTO TABLE users FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\"' ESCAPED BY '\"' LINES TERMINATED BY '\\n' IGNORE 0 LINES (`firstname`, `lastname`, `username`, `gender`, `email`, `country`, `ethnicity`, `education` )", addslashes($csv)); 
    return DB::connection()->getpdo()->exec($query); 

} 



public function uploadUsers(){ 


    if (Input::hasFile('fileInput')){ 

     $file = Input::file('fileInput'); 
     $name = time() . '-' . $file->getClientOriginalName(); 

     $path = 'public/uploads/'.date('Y/m/'); 

     $file->move($path, $name); 
     $this->_import_csv($path, $name); 

    } 

    return Response::json(["success"=>true]); 
} 

लेकिन मैं इस त्रुटि हो रही है:

{"error":{"type":"ErrorException","message":"PDO::exec(): LOAD DATA LOCAL INFILE forbidden","file":"C:\\wamp\\www\\lc2\\laravel\\app\\controllers\\UsersController.php","line":224}} 

मैं क्या गलत पता नहीं है। क्या कोई मेरी मदद कर सकता हैं?

उत्तर

15

database.php

'mysql' => array(
      .... 
      'options' => [PDO::MYSQL_ATTR_LOCAL_INFILE=>true], 
     ), 
+1

ठनक साथी :) – Hamelraj

+0

यह मेरे लिए काम कर रहा है में यह

सेट पीडीओ कनेक्शन विकल्प

सेट विशेषता पीडीओ :: MYSQL_ATTR_LOCAL_INFILE प्रयास करें .. ! –

-2

sprintf फ़ंक्शन से पहले क्वेरी स्ट्रिंग को साफ़ करने का प्रयास करें।