Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: SET в LOAD DATA INFILE
Форумы портала PHP.SU » » Работа с СУБД » SET в LOAD DATA INFILE

Страниц (1): [1]
 

1. Грачи прилетели - 06 Апреля, 2017 - 20:13:37 - перейти к сообщению
Добрый день!

Прошу помощи

Загружаю дамп, в котором дата и время в csv, в формате 01/01/17 10:07:15 вставляется в поле datetime (day_reg).

Пробовал разные варианты параметра SET, но не выходит, при вставке в поле datetime 0000-00-00 00:00:00

Вариант 1
PHP:
скопировать код в буфер обмена
  1. $sql_svr =  "LOAD DATA INFILE '/var/www/fk/dump_s/2017.csv' INTO TABLE `fk_convert` FIELDS TERMINATED BY ',' ENCLOSED BY '\"' ESCAPED BY '\"' LINES TERMINATED BY '\r\n' SET day_reg= STR_TO_DATE(@day_reg,'%d/%m/%y %H:%i:%s')";



Вариант 2
PHP:
скопировать код в буфер обмена
  1. $sql_svr =  "LOAD DATA INFILE '/var/www/fk/dump_s/2017.csv' INTO TABLE `fk_convert` FIELDS TERMINATED BY ',' ENCLOSED BY '\"' ESCAPED BY '\"' LINES TERMINATED BY '\r\n' SET day_reg= DATE_FORMAT(STR_TO_DATE(@day_reg,'%d/%m/%y %H:%i:%s'), 'Y-m-d H:i:s')";


Что не так делаю?

Спасибо
2. Грачи прилетели - 06 Апреля, 2017 - 22:47:12 - перейти к сообщению
Получилось сделать, если добавить присвоение переменных через IGNORE 1 ROWS

но проблема в том, что мне csv файл отдают с русским наименование столбцов, причем встречаются не одним, а несколькими словами...

Ради эксперимента названия в файле сделал латинице и тогда получилось, а с русскими названием косяк -(
(Добавление)
через костыли заменяя в csv русские заголовки на название полей из таблицы базы получилось, но решение не нравится

если кто-то поделится правильным решением, буду признателен

 

Powered by ExBB FM 1.0 RC1