【发布时间】:2012-10-18 18:49:55
【问题描述】:
我正在尝试以编程方式将大量 CSV 文件导入 MySQL 数据库。
经过一番研究,我发现了 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...仍然没有工作!
【问题讨论】:
-
我觉得你可以试试SQLyog之类的GUI工具。
-
我需要以编程方式进行...没有 GUI 工具可以做到 :(
-
你为什么要投票给我?这个问题有什么问题?
标签: php mysql mysqlimport