2015-02-28 18 views
5

Tôi đang cố tải lên tệp csv vào bảng users trong Laravel.Tải tệp CSV lên MySQL bằng Laravel

Đây là php kịch bản của tôi:

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]); 
} 

Nhưng tôi nhận được lỗi này:

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

Tôi không biết whats sai. Ai có thể vui lòng giúp tôi?

Trả lời

15

Vui lòng thử nó

tùy chọn kết nối Set PDO

thuộc tính Set PDO :: MYSQL_ATTR_LOCAL_INFILE trong database.php

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

Thankyou bạn thân :) – Hamelraj

+0

nó làm việc cho tôi .. ! –

-2

Cố gắng xóa chuỗi truy vấn trước hàm sprintf.

Các vấn đề liên quan