以下是我的CSV文件示例:
Name | USD ------------ Ifone | 500 Ufone | 600
我想读取我的csv文件,其中我的php脚本读取第一行然后(如何)根据返回的第一行的元素相应地创建表,如上例所示,行元素将是{{1 }}
Name and USD
然后(如何)从创建的表中存储从第2行开始的元素,依此类推。请告诉我什么是适当的方法。
谢谢,
以下函数我曾经从我的csv文件中获取数据:
Create table csv
{
$column1 varchar (50)
$column2 varchar (50)
}
答案 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
可能会给你带来麻烦 - 因为字符0>,因此可以认为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的更多信息。