Как загрузить данные в БД из CSV, используя LOAD DATA INFILE в drupal - PullRequest
0 голосов
/ 22 октября 2010

Я попробовал приведенный ниже код для загрузки встроенного файла в drupal db

 $sql = "LOAD DATA INFILE '".db_escape_string($this->file_name).
         "' INTO TABLE `".$this->table_name.
         "` FIELDS TERMINATED BY '".db_escape_string($this->field_separate_char).
         "' OPTIONALLY ENCLOSED BY '".db_escape_string($this->field_enclose_char).
         "' ESCAPED BY '".db_escape_string($this->field_escape_char).
         "' ".
         ($this->use_csv_header ? " IGNORE 1 LINES " : "")
         ."(`".implode("`,`", $this->arr_csv_columns)."`)";
  $res = db_query($sql);
  $this->error = mysql_error();

Я получил ошибку, но файл присутствовал в папке

предупреждение пользователя: File 'http: \ localhost \ example \ sites \ default \ files \ example_1.csv 'не найден (код ошибки: 22) запрос: ЗАГРУЗИТЬ ИНФИЛЬ ДАННЫХ' http://localhost/example/sites/default/files/example_1.csv' INTO TABLE temp_21_10_2010_06_38_00 ПОЛЕ ЗАВЕРШЕНО ',' НЕОБЯЗАТЕЛЬНО ЗАКЛЮЧЕНО '\ "'ESCAPED BY' \ 'IGNORE 1 LINES (PROGRAMNAME, OFFLINE, ONLINE, INSTOCK) в C: \ wamp \ www \ example \ sites \ all \ modules \ importmodule \ Quick_CSV_import.php в строке 65.

В строке 65 указан вышеуказанный код php $res = db_query($sql);.

Ответы [ 2 ]

3 голосов
/ 22 октября 2010

вам нужно указать полный / абсолютный или относительный путь к вашему CSV-файлу, а не URL-адрес

load data infile '/myproj/imports/example_1.csv' into table...

load data infile 'c:\\myproj\\imports\\example_1.csv' into table...

предлагает вам проверить руководство еще раз http://dev.mysql.com/doc/refman/5.1/en/load-data.html

0 голосов
/ 22 октября 2010

Возможно, это из-за open_files_limit ?

...