【问题标题】:How to load data to db from csv using LOAD DATA INFILE in drupal如何在 drupal 中使用 LOAD DATA INFILE 将数据从 csv 加载到 db
【发布时间】:2011-04-28 23:48:06
【问题描述】:

我已尝试使用以下代码在 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();

我收到了错误,但该文件存在于文件夹中

用户警告:找不到文件“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 FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\"' 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); 存在。

【问题讨论】:

    标签: mysql drupal drupal-6


    【解决方案1】:

    您需要指定 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

    【讨论】:

    • 上面相同的代码在 php 中运行良好,但我无法通过 drupal。
    • drupal 的路径与独立的 php 脚本不同。
    • 在 Windows 中我不得不使用“/”斜杠作为路径分隔符
    【解决方案2】:

    也许是因为open_files_limit

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-02
      • 2012-06-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-28
      • 1970-01-01
      相关资源
      最近更新 更多