我正在尝试以编程方式将大量 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 ......仍然没有工作!