我需要创建一个PHP文件,它将获取包含大量数据的文本文件,并将其导入MySQL数据库。
我知道我可以通过打开文件,解析文件,每行使用单独的命令来插入数据来实现这一点。
但是我想知道如果首先不存在MySQL表,是否有办法做到这一点。
我正在尝试尽可能自动化流程,以消除时间和潜在的人为错误。
那么,是否可以在PHP中指定文本文件(它是CSV文件,但数据用'|'而不是逗号分隔),并让PHP脚本首先创建MySQL表,然后导入完整的数据文件到那个表?
文本文件的第一行将始终包含列名。
我知道我可以通过打开文件,第一行,使用它来创建一个表,然后返回并再次循环遍历文件,一次插入一行 - 但我想知道如果有一种更快更有效的处理文件的方式,那么!
文件非常大,所以方法需要尽可能高效,我觉得可能有一个我不知道的命令?
答案 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
要创建实际表,您应该在导入数据之前使用该查询。通过查询,您可以指定有关创建表,列和数据类型等的任何内容。