Alex7666
Новичок
Здравствуйте!
Подскажите, плиз, второй день бьюсь - и ничего не получается!
Мне нужно загрузить файл (cvs с разделителями таб) в базу данных с помощью запроса LOAD DATA LOCAL INFILE в фреймворке Yii.
Значит так:
В контролере код:
При попытке загрузить в базу данных выдает ошибку:
PDOStatement::execute() [<a href='pdostatement.execute'>pdostatement.execute</a>]: LOAD DATA LOCAL INFILE forbidden
Судя из содержания ошибки - запрещено загружать. Но почему?
Как можно все таки на Yii загрузить файл.
Кстати пример был взят из сайта http://www.yiiframework.com/wiki/336/im ... a-command/
Но, когда загружаешь файлы штатным способом, к примеру:
Все нормально загружается. Может проблема в настройках подключения к базе данных файла main.php:
Просто даже уже не знаю как быть... все перелопатил...
Спасибо за любые советы!!!
Подскажите, плиз, второй день бьюсь - и ничего не получается!
Мне нужно загрузить файл (cvs с разделителями таб) в базу данных с помощью запроса LOAD DATA LOCAL INFILE в фреймворке Yii.
Значит так:
В контролере код:
PHP:
public function actionIndex()
{
$model= new ImportPrice;
if(isset($_POST['ImportPrice']))
{
$model->attributes=$_POST['ImportPrice'];
if($model->validate())
{
$csvFile=CUploadedFile::getInstance($model,'file');
$tempLoc=$csvFile->getTempName();
$sql = "LOAD DATA LOCAL INFILE '".$tempLoc."'
IGNORE INTO TABLE hot_page
FIELDS TERMINATED BY '\t'
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES
(id_page,title,text)";
$connection=Yii::app()->db;
$connection->createCommand($sql)->execute();
}
}
$this->render("index",array('model'=>$model));
}
PDOStatement::execute() [<a href='pdostatement.execute'>pdostatement.execute</a>]: LOAD DATA LOCAL INFILE forbidden
Судя из содержания ошибки - запрещено загружать. Но почему?
Как можно все таки на Yii загрузить файл.
Кстати пример был взят из сайта http://www.yiiframework.com/wiki/336/im ... a-command/
Но, когда загружаешь файлы штатным способом, к примеру:
PHP:
$pwdb=mysql_connect("127.0.0.1", "alex76", "123") or die("База даных не подключена");
mysql_query('SET character_set_database = utf8');
mysql_query('SET NAMES utf8');
$db=mysql_select_db("hotline", $pwdb) or die("База даных не выбрана! (A)");
$sql = "LOAD DATA LOCAL INFILE '".$patch."'
IGNORE INTO TABLE hot_page
FIELDS TERMINATED BY '\t'
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES
(id_page,title,text)";
if(mysql_query($sql)){echo 'Success'; }
else {echo 'Error';}
PHP:
db'=>array(
'connectionString' => 'mysql:host=localhost;dbname=hotline',
'emulatePrepare' => true,
'username' => 'alex76,
'password' => '123',
'charset' => 'utf8',
),
Спасибо за любые советы!!!