我需要创建一个 PHP 文件,该文件将获取包含大量数据的文本文件,并将其导入 MySQL 数据库。
我知道我可以通过打开文件、解析它并使用每行单独的命令来插入数据来完成此操作。
但是我想知道如果MySQL表首先不存在,是否有办法做到这一点。
我正在尝试尽可能地自动化该过程,以消除时间和潜在的人为错误。
那么,是否可以在PHP中指定一个文本文件(它是一个CSV文件,但数据之间用“|”而不是逗号分隔),并让PHP脚本先创建MySQL表,然后导入将完整的数据文件放入该表中?
文本文件的第一行将始终包含列名称。
我知道我可以通过打开文件,获取第一行,使用它创建一个表,然后返回并再次循环文件,一次插入一行数据来完成此操作 - 但我想知道如果有比这更快、更有效的处理文件的方法!
文件确实很大,所以方法需要尽可能高效,而且我感觉可能有一个我不知道的命令??
最佳答案
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
要创建实际的表,您应该在导入数据之前使用查询。通过查询,您可以指定任何内容来创建表、列和数据类型等。
关于PHP - 上传CSV文件并导入到数据库,其中表不存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31562860/