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"));
}
}
Tsunami
(Erik)
2
$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`)";