У меня есть много файлов csv, которые мне нужно вставить в базу данных mysql, используя «загрузку в файл» сделать это очень быстро и легко.
Однако он застревает в одном разделе:
Пример строки CSV:
ABSOLUTE,Glenn,Anakie,"Cool Synd, Super Cool"
Я использую следующий код:
Код: Выделить всё
$q = "load data infile '$file' into table $table
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '\"'
LINES TERMINATED BY '\n';";
mysql_query($q, $db);
Я пробовал переключать порядок завершения полей и opt, заключенных в команды. Попробовал просто сделать это ENCLOSED BY. Попробовал не экранировать ", также /"/", попробовал использовать две одинарные кавычки вместо двойной; но я все еще не могу понять, что я хочу, чтобы "Cool Synd, Super Cool" было одним полем.
Кто-нибудь знает, что я здесь делаю неправильно?
Вот структура моей таблицы:

Я просто помещаю сюда все свои данные, затем обрабатываю их и перемещаю поля в соответствующие таблицы в правильный формат. Столбец с проблемой - «Владелец».
Я изменил его на текстовый тип, так как это было решение для других, но он работает одинаково, будь то текст, char, varchar и т. д.
(Работает на сервере Ubuntu 14.4, Apache/2.4.7, PHP 5.5.9)
Подробнее здесь: https://stackoverflow.com/questions/354 ... s-expected
Мобильная версия