2015-01-26 1 views
0

Я запускаю инструкцию SQL для чтения в CSV-файле (в данном случае только 1 столбец с заголовком) и импортируя его в мою базу данных, где дальнейшие манипуляции с данными будут происходят через последующие операторы SQL.MySQL LOAD DATA INFILE Выполнение запроса выполняется успешно, но нет вывода

Однако я, похоже, не могу загрузить файл CSV в свою БД как непосредственно в MySQL Workbench, так и на моем PHP-сайте локально, а также на другом Mac в моей сети через веб-сайт PHP.

Интересно, что запрос запускается успешно, так как я не получаю никаких ошибок на каких-либо платформах или компьютерах, но никаких строк не влияет.

Я много сделал для того, чтобы решить проблему. Вот мой текущий код SQL, и я расскажу, что я пробовал.

LOAD DATA INFILE '/Users/Josh/Desktop/testcsv.csv' 
INTO TABLE joinTest 
FIELDS 
    TERMINATED BY ',' 
    ENCLOSED BY '"' 
LINES 
    TERMINATED BY '\r\n' 
IGNORE 1 LINES 
(interestName); 

Так что это я пытаюсь использовать его в Workbench MySQL. В PHP у меня есть загрузчик и переменная, которая хранит расположение файла tmp. Это работает так, как будто вышло, и все выглядит хорошо.

Я попытался запустить его как

LOAD DATA INFILE 

Но она по-прежнему не влияет на какие-либо строки (работает успешно). Я также изменил TERMINATED BY на LINES до \n, но все равно не повлияет на любые строки.

Я не могу понять, почему это не влияет на какие-либо строки, так как мой CSV-файл читается всеми и должен быть в правильном формате (создан в Excel и сохранен как формат cvs).

Кто-нибудь знает, что может быть потенциальной проблемой?

Если вам нужна дополнительная информация, я отвечу на него как можно скорее. Благодарю.

+0

Я думаю, что excel сохраняет файл с точкой с запятой ";" как разделитель, попробуйте изменить это в вашем sql – baao

+0

Привет Майкл, к сожалению, это не работает, просто попробовал и получил тот же результат, успешный запрос, но не затронул ни одной строки. –

ответ

0

Правильно, поэтому я обнаружил, что Mac использует разные концы строк для Unix & Windows. Я открыл CSV в Sublime Text 3 и обнаружил, что есть возможность изменить концы строк в параметрах просмотра.

Я установил это в Unix, сохранил файл и терминатор \ n работал. К сожалению, текст Sublime не показывает окончание строки как видимые символы, поэтому это было просто случайно.

Я надеюсь, что это поможет кому-то еще, кто сталкивается с этой проблемой, убедитесь, что окончательные строки CSV соответствуют окончаниям строк, которые вы указываете в запросе LOAD DATA.