CSV文件和数据库

时间:2012-11-15 16:34:08

标签: php mysql csv

以下是我的CSV文件示例:

Name  | USD
------------
Ifone | 500
Ufone | 600

我想读取我的csv文件,其中我的php脚本读取第一行然后(如何)根据返回的第一行的元素相应地创建表,如上例所示,行元素将是{{1 }}

Name and USD

然后(如何)从创建的表中存储从第2行开始的元素,依此类推。请告诉我什么是适当的方法。

谢谢,

以下函数我曾经从我的csv文件中获取数据:

Create table csv
{
$column1 varchar (50)
$column2 varchar (50)
}

1 个答案:

答案 0 :(得分:2)

更好的方法是:

1)研究CSV表格式并确定字段名称和类型,例如

fonemodel varchar(50);
cost      integer;      -- or a monetary field

2)从上面的字段中手动创建表格

CREATE TABLE fones ...

3)直接导入文件:

LOAD DATA LOCAL INFILE '/path/to/mycsv.csv'
INTO TABLE fones
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 LINES

终端和机箱取决于CSV结构(您提供的示例实际上是管道分隔)。

一旦存储了两个表,就可以在相应的数据类型之间进行比较(varchar可能会给你带来麻烦 - 因为字符,因此可以认为599小于60 em>'5'出现在'6'之前)

更新

假设真正的CSV类似于

 UFone,500,useless data,1234,other useless info,blah blah

并且您只需要型号,成本和库存,即第1,2和4列。然后您将输入指定为:

 ...INTO TABLE fones (model, cost, @ignore, stock, @ignore, @ignore)...

而不仅仅是INTO TABLE

有关MySQL's manual page的更多信息。