Я хочу импортировать до 10.000 записей в базу данных (mysql) в моделях joomla.В этом файле контроллера я создал CSV-файл из загруженного файла данных пользователем, а затем передал файл моделям.
Я проверил запрос в командной строке MySQL, и он отлично работает.Все записи в CSV, созданные файлом Conroller, были импортированы.Но я получил ошибку во время выполнения запроса на Joomla, без ошибки определения.Joomla работает на localhost, рабочий стол Ubuntu 18.04.
Вот мой файл контроллера:
//writing csv file
$csv_file = $path."csv_file_ok_". round(microtime(true)) .".csv";
$create_csv = fopen($csv_file,"w");
$b= 0;
foreach($key_index as $lines)
{
if($b == 0)
{
fputcsv($create_csv, array_keys($lines));
}
else
{
fputcsv($create_csv, $lines);
}
$b++;
}
fclose($create_csv);
chmod($csv_file, 0755);
//chown($csv_file, mysql:mysql);
$model = $this->getModel();
$model->saveReservation($csv_file);
, и это моя модель:
public function saveReservation($file)
{
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$sql = "TRUNCATE TABLE ". $db->quoteName('#__service_reservation');
$db->setQuery($sql);
$del = $db->execute();
if($del)
{
$query = $db->getQuery(true);
$sql = 'LOAD DATA LOCAL INFILE ' . $db->quote($file) .
' INTO TABLE ' . $db->quoteName('#__service_reservation') .
' FIELDS TERMINATED BY '. $db->quote(',') . ' ENCLOSED BY '. $db->quote(' ').
' LINES TERMINATED BY \'\n\' '.
' IGNORE 1 ROWS ' .
' (plnt,reserv_no,item,material_no,reqmt_qty,bun,withdrwl_q,balance_qt,mvt,sloc,rcvsloc,reqmt_date,base_date,recipient,text)';
//echo $sql;
$db->setQuery($sql);
echo($query->__toString());
$res = $db->execute();
//return $res;
}
, и это часть моегоCSV-файл:
plnt,reserv_no,item,material_no,reqmt_qty,bun,withdrwl_q,balance_qt,mvt,sloc,rcvsloc,reqmt_date,base_date,recipient,text
3DP0,0011988450,5,EM120WH-35,1,PC,0,-1,9X3,8101,1090,2018-07-13,2018-07-13,9Y4,"IBU RINI -PONDOK PINANG"
3DP0,0012267262,3,9LCEJC20YRD19,1,PC,0,-1,9X3,8101,1090,2018-08-27,2018-08-27,9Y4,"100481683 FELICIA GRACE-IBU -SDSS SERPONG"
3DP0,0012361530,16,DSGY-G525JBKZ,1,PC,0,-1,9X3,8101,3190,2018-12-10,2018-09-10,601,"HEIN SASS"
3DP0,0012381155,10,1627A47205-MD,1,PC,0,-1,9X3,8101,1091,2018-09-13,2018-09-13,REFURBISH,
запустить на Mysql Promt:
mysql> LOAD DATA LOCAL INFILE '/var/www/html/cs/tmp/csv_file_ok_1557531392.csv' INTO TABLE `q26f3_service_reservation` FIELDS TERMINATED BY ',' ENCLOSED BY '' LINES TERMINATED BY '\n' IGNORE 1 ROWS (plnt,reserv_no,item,material_no,reqmt_qty,bun,withdrwl_q,balance_qt,mvt,sloc,rcvsloc,reqmt_date,base_date,recipient,text);
Query OK, 2944 rows affected (1.45 sec)
Records: 2944 Deleted: 0 Skipped: 0 Warnings: 0
но Joomla дать мне ошибку:
If difficulties persist, please contact the System Administrator of this site and report the error below.
0
/var/www/html/cs/libraries/joomla/database/driver/mysqli.php:665