Intereting Posts
Брандмауэр Silex / Symfony Security Access Доступ к токену пользователя за пределами защищенной зоны Как принять cookie с iPhone, страницу входа в систему PHP file_exists или is_file не отвечает правильно в течение 10-20 с на NFS-файлах (EC2) Использование PHP SoapClient с Java JAX-WS RI (Webservice) Удалить определенные строки из конца строки Как сгенерировать сертификат DER / PEM из общедоступного показателя и модуля RSA? Внутренняя ошибка сервера (ошибка HTTP 500) после установки phpmyadmin в определенном домене Какие шаблоны я мог бы использовать в коде, чтобы упростить перевод на другой язык программирования? Предупреждение PHP: заголовки уже отправлены в Unknown Прозрачная PNG над JPG в PHP Проверить правильность имени столбца SQL Сценарий PHP, позволяющий пользователям загружать файл с моего сайта, не раскрывая ссылку на файл на моем веб-сайте? WordPress: проблема с регулярным выражением shortcode Рекурсивный поиск массивов PHP php foreach, почему быстро использовать пропуск по ссылке массива?

Mysql CSV load infile

У меня есть CSV-файл с 9 столбцами, и у меня есть таблица MySQL с 11 столбцами.

Файл CSV выглядит так:

col1, col2, col3, col4, col5, col6, col7, col8, col9 

и таблица MySQL выглядит так:

 col1, col2, col3, col4, col5, col6, col7, col8, col9, col10, col11 

Мне нужно заставить скрипт игнорировать два ошибочных (но требуемых) столбца MySQL.

Столбцы mysql, которые необходимо игнорировать при импорте: db_id & nice_date =)

Это то, что у меня есть до сих пор:

 $sql = 'LOAD DATA LOCAL INFILE "../csvtemp/test.csv" INTO TABLE sample FIELDS TERMINATED BY "," OPTIONALLY ENCLOSED BY """" IGNORE 1 LINES' ; 

 $sql = 'LOAD DATA LOCAL INFILE "../csvtemp/test.csv" INTO TABLE sample FIELDS TERMINATED BY "," OPTIONALLY ENCLOSED BY """" IGNORE 1 LINES (col1, col2, col3, col4, col5, col6, col7, col8, col9)' ; 

Недопустимым столбцам присваиваются значения DEFAULT, иначе вы можете указать фиксированные значения следующим образом:

 $sql = 'LOAD DATA LOCAL INFILE "../csvtemp/test.csv" INTO TABLE sample FIELDS TERMINATED BY "," OPTIONALLY ENCLOSED BY """" IGNORE 1 LINES (col1, col2, col3, col4, col5, col6, col7, col8, col9)' SET col10 = 'abc', col11 = 'xyz' ; 

Похоже, вы можете использовать LINES TERMINATED BY (возможно, с PHP_EOL ).
http://dev.mysql.com/doc/refman/5.0/en/load-data.html

Процитировать страницу руководства:

Если строка не содержит всех полей, остальные столбцы имеют значения по умолчанию.