PHP - 上传CSV文件并导入数据库,其中表不存在

时间:2015-07-22 12:15:19

标签: php mysql csv

我需要创建一个PHP文件,它将获取包含大量数据的文本文件,并将其导入MySQL数据库。

我知道我可以通过打开文件,解析文件,每行使用单独的命令来插入数据来实现这一点。

但是我想知道如果首先不存在MySQL表,是否有办法做到这一点。

我正在尝试尽可能自动化流程,以消除时间和潜在的人为错误。

那么,是否可以在PHP中指定文本文件(它是CSV文件,但数据用'|'而不是逗号分隔),并让PHP脚本首先创建MySQL表,然后导入完整的数据文件到那个表?

文本文件的第一行将始终包含列名。

我知道我可以通过打开文件,第一行,使用它来创建一个表,然后返回并再次循环遍历文件,一次插入一行 - 但我想知道如果有一种更快更有效的处理文件的方式,那么!

文件非常大,所以方法需要尽可能高效,我觉得可能有一个我不知道的命令?

1 个答案:

答案 0 :(得分:0)

http://dev.mysql.com/doc/refman/5.0/en/mysqlimport.html

mysqlimport  --ignore-lines=1 --fields-terminated-by=,
--columns='ID,foo,bar' --local -u root -p
Database /path/to/csvfile/TableName.csv 

要创建实际表,您应该在导入数据之前使用该查询。通过查询,您可以指定有关创建表,列和数据类型等的任何内容。