0

我正在尝试以编程方式将大量 CSV 文件导入 MySQL DB。

经过一番研究,我发现了 LOAD DATA,但这是不可能的,因为服务器不允许这样做。

然后,我发现mysqlimport是一个可行的替代方案。

这是正在发生的事情:

我从 FTP 服务器下载了很多 CSV 文件,然后一一执行以下操作:

exec("ln " . $path . $csv_file. " " . $path . "CSVs.txt");
exec("mysqlimport -u root -ppass --local --ignore-lines=1 --columns=column1,column2 " .  $path . "CSVs.txt>" . $path . "_.txt");
unlink($path . "CSVs.txt");

首先,我创建文件的符号链接(因为我没有设法使用与表名不同的文件名)然后,我执行mysqlimport命令,将输出发送到一个 txt 文件。最后,我删除了符号链接。

当我运行时,会创建和删除 CSV 临时文件,但在我的数据库和输出 txt 中都没有出现任何内容。

如果我在终端中回显命令并过去,它可以完美运行,但是在 exec 中,什么也没有发生。

我相信它与引号和反斜杠有关,但无法修复它。

任何帮助将不胜感激:P

编辑:我已经chmod **ed **mysqlimpot bin ......仍然没有工作!

4

1 回答 1

1

似乎 PHP 没有找到 mysqlimport 命令。所以,我不得不使用它的完整路径来使它工作!

于 2012-10-29T14:35:39.260 回答