2013-03-05 2 views
0

У меня есть файл .CSV, который будет импортироваться в базу данных mysql, используя синтаксис локального синтаксиса Load data, мой файл csv содержит 23 столбца, но я хочу импортировать выбранные столбцы только в базу данных.Загружать данные локальные данные, не вставляемые в базу данных

Моя проблема заключается в том, что sys-файл моей загрузки не импортировал ничего из моего файла .CSV.

Ниже мой код:

$mysql = printf("LOAD DATA LOCAL INFILE 'File.csv' INTO TABLE table 
      FIELDS 
       TERMINATED BY ',' 
      LINES 
       TERMINATED BY '\\n' 
      IGNORE 1 LINES 
      (column1, column2, column3...) 
"); 

$query = mysql_query($mysql); 

любая помощь будет принята с благодарностью.

спасибо большое!

+0

Вы не проверили ошибок. Используйте http://php.net/mysql_error, чтобы узнать, что не так –

+0

Какое сообщение об ошибке вы получаете? Добавьте 'или die (mysql_error)' после вызова 'mysql_query'. Также используйте 'Mysqli' вместо того, чтобы' Mysql_ *' устарел – BOMEz

+0

Привет @Pekka 웃 Вот что я получаю. Сообщение об ошибке: у вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с «221» в строке 1 – phphopzter

ответ

2

Войдите в свой SSH-запрос.

Затем введите

# mysql -u admin -p`cat /etc/psa/.psa.shadow`; 

mysql>LOAD DATA LOCAL INFILE 'File.csv' INTO TABLE table 
      FIELDS 
       TERMINATED BY ',' 
      LINES 
       TERMINATED BY '\\n' 
      IGNORE 1 LINES 
      (column1, column2, column3...) 

Если он работает, проблема с правами доступа пользователей к базе данных. Измените разрешение пользователя и выполните его.

0

В окнах это то, что я использую. Я использую удаленный db и все еще должен помещать дополнительную косую черту для местоположения файлов dir «C: \», как представляется, есть и дополнительная косая черта в обоих примерах выше «\ n» Я считаю, что это должно быть только одно. отредактируйте это и попробуйте в mysql workbench или аналогичном GUI

LOAD DATA LOCAL INFILE 'c:\\resultItem.txt' 
INTO TABLE resultItem 
FIELDS TERMINATED BY ',' 
OPTIONALLY ENCLOSED BY '|' 
LINES TERMINATED BY '\n' 
IGNORE 1 LINES 
(ID, Accessibility, Assigned_To, AttachedFileCount, Category, `Change`,  Changed_By,Changed_Date,ChildLinkCount,Closed_By,Closed_Date,Dependent_Date,Dependent_Link_Status,Description, @insertedtothisDB) 
SET insertedtothisDB = utc_timestamp(); 
Смежные вопросы