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

标签 php mysql csv

我需要创建一个 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/

相关文章:

php - 在 CodeIgniter Controller 中建立 SSH 连接

使用 HAVING 的 MySQL 查询错误地限制了结果

r - 在 read.csv 中指定 colClasses

php - HTML 和 PHP - 如何使多个表单可提交

php - 解决Python共享服务器安全问题

php - 在 codeigniter 中分离站点和管理员

mysql - 联合与内连接,mysql错误

php - mysql 替换困难条件

Python/MySQL - 将csv文件导入mysql

python - 通过多列中的非唯一值比较两个 csv 文件,输出到匹配的 csv 额外数据