Load Data Infile

I am importing csv file on database. But getting this error after submit

Fatal error: Call to undefined method stdClass::getTempName()

Controller

public function actionImportCSV()

{

$model=new UserImportForm;

if(isset($_POST[‘UserImportForm’]))

{

$model->attributes=$_POST[‘UserImportForm’];

if($model->validate())

{


 $csvFile->file=CUploadedFile::getInstance($model,'file');  


 $tempLoc=$csvFile->getTempName();


 $sql="LOAD DATA INFILE '".$tempLoc."' INTO TABLE `tbl_emp_master`


 FIELDS


 TERMINATED BY ','


 ENCLOSED BY '\"'


 LINES


 TERMINATED BY '\n'


 IGNORE 1 LINES


 (`emp_id`, `name`, `cardnumber`, `uid`, `location`, `grade`, `department`, `emp_type`, `access_group`, `check_in`, `check_out`)";


 $connection=Yii::app()->db;


 $transaction=$connection->beginTransaction();


 try


 {


 $connection->createCommand($sql)->execute();


 $transaction->commit();


 }


 catch(Exception $e) // an exception is raised if a query fails


{


 print_r($e);


 exit;


 $transaction->rollBack();


}


$this->redirect(array("site/index"));

}

}


$csvFile->file=CUploadedFile::getInstance($model,'file'); 

should of course be


$csvFile=CUploadedFile::getInstance($model,'file'); 

Thanks…

I changed the code but now getting this error.

CDbException Object ( [errorInfo] => Array ( [0] => HY000 [1] => 7890 [2] => Can’t find file ‘D:wamp mpphp1118.tmp’. ) [message:protected] => CDbCommand failed to execute the SQL statement: SQLSTATE[HY000]: General error: 7890 Can’t find file ‘D:wamp mpphp1118.tmp’… The SQL statement executed was: LOAD DATA LOCAL INFILE ‘D:\wamp\tmp\php1118.tmp’ INTO TABLE tbl_emp_master FIELDS TERMINATED BY ‘,’ ENCLOSED BY ‘"’ LINES TERMINATED BY ’ ’ IGNORE 1 LINES (emp_id, name, cardnumber, uid, location, grade, department, emp_type, access_group, check_in, check_out)

Import CSV file Using LOAD DATA LOCAL INFILE

I solved it.

add addslashes()function to tempLoc

$csvFile=CUploadedFile::getInstance($model,‘file’);

$tempLoc=$csvFile->getTempName();

//echo "**".$tempLoc."";

$sql="LOAD DATA LOCAL INFILE ‘".addslashes($tempLoc)."’ INTO TABLE tbl_emp_master

    FIELDS TERMINATED BY ',' ENCLOSED BY '\"' LINES  TERMINATED BY '\n'


     IGNORE 1 LINES


    (`emp_id`, `name`, `cardnumber`, `uid`, `location`, `grade`, `department`, `emp_type`, `access_group`, `check_in`, `check_out`)";