如何使用php将excel数据导入现有的mysql表

时间:2012-07-04 10:35:08

标签: php mysql

我正在开发一个项目,用户可以在其中创建新的联系人组,也可以使用Excel数据更新现有的联系人组。

创建新的联系人组不是问题,但是将文档内容插入数据库对我来说是一个主要问题。

或者可以使用php轻松地将哪种格式导入数据库。

数据如下所示:

| name | |电子邮件| |电话|

   |我| | we@us.com | | 080234444 | 等

任何建议,建议或指示都将受到赞赏。

1 个答案:

答案 0 :(得分:0)

MySql可以使用LOAD DATA INFILE命令轻松地从文件导入CSV *数据。如果需要解析其他Excel数据,则需要额外的方法和逻辑来读取文件并手动填充数据库。

您可以在LOAD DATA INFILE

上阅读更多信息

*基本上任何分隔文本(TSV等)

请注意,有许多限制/ gothchas与分隔数据,例如,无法在csv文本中保留未转义的逗号。确保源文件符合并遵守CSV规则,否则您最终可能会损坏数据。

修改

现在您已经提供了一些数据示例,您可能想要尝试这个(或类似的东西):

LOAD DATA INFILE `your filename` INTO `Table` 
Fields Terminated BY '|' 
Lines Terminated BY '\r\n'
IGNORE 1 LINES 
(@Col1, @Col2, @Col3, @Col4, @Col5)
SET Name = TRIM(@Col1), Email = TRIM(@Col3), Telephone = TRIM(@Col5)

在这里,您将数据加载到临时变量中,然后将其输入到表中。 请注意,该文件必须存在于本地计算机上。

修改

试试这个固定的SQL

LOAD DATA INFILE 'your filename' INTO TABLE `Table` 
Fields Terminated BY '|' 
Lines Terminated BY '\r\n'
IGNORE 1 LINES 
(@Col1, @Col2, @Col3, @Col4, @Col5)
SET Name = TRIM(@Col1), Email = TRIM(@Col3), Telephone = TRIM(@Col5)