2017-02-28 141 views
-2

我有一個csv文件,它有13列,這些列中的每一列都有很多很多的數據,我需要的是能夠將這些數據從.csv文件中提取到mysql數據庫。如何將數據從CSV文件導入數據庫

首先,我需要幫助爲csv文件的每個列創建特定的表,因爲我對mysql很新,我不太確定要分配給每個表的屬性。

下面是CSV文件的結構...

PID,START_TIME,END_TIME,epoch_start,epoch_end,complete_title,媒體類型,masterband,服務,brand_pid,is_clip,分類,標籤

下列中的數據 p00547jm(PID),1003394820(START_TIME),1003999620(END_TIME),2001-10-18T08:47:00(epoch_start),2001-10-25T08:47:00(epoch_end),in_our_time :_democracy(complete_title),audio(media_type),bbc_radio_four(masterband),bbc_radio_four(service ),b006qykl(brand_pid),0(is_clip),[9100005:1:factual.9200041:2:arts_culture_and_the_media.9200055:2:history](categories),[democracy.history.philosophy.plato.ancient_greece](tags)

+1

你看到這個鏈接 http://stackoverflow.com/questions/11448307/importing-csv-data-using-php-mysql –

回答

0

先創建表,然後使用

LOAD DATA LOCAL INFILE '/home/dummy/dummy.csv' INTO TABLE tablename 
FIELDS TERMINATED BY ','; 

從文件中的數據插入到新表。

另外,確保當您登錄到MySQL使用

mysql -uusername -ppassword --local-infile 

至於創建表:

我們可以給語法,但我們不能寫整個查詢爲您服務。你可以自己嘗試,因爲你有你需要的數據。

create table table_name (col1 datatype(size) NOT NULL primary key, 
col1......); 
+0

克里希納你好,謝謝您的回覆!只是想知道,只需要創建1個表格,因爲我有13個字段,所以我假設我需要爲每個表格分別創建一個表格......或者只需要創建一個表格,這就是我掙扎的地方。 .. –

+0

這是否解決您的問題?如果是這樣,你可以通過接受這個答案來關閉它 – Krishnakumar

+0

@ Jason-D取決於你在數據庫中需要什麼。爲此,您可以創建一個包含13列名稱的單個表格,然後執行插入操作。 – Krishnakumar

0

這將生成創建表查詢$ 1進行成爲表名

[Create mysql table directly from CSV file using the CSV Storage engine?

#!/bin/sh 
# pass in the file name as an argument: ./mktable filename.csv 
echo "create table $1 (" 
head -1 $1 | sed -e 's/,/ varchar(255),\n/g' 
echo " varchar(255));" 

然後你就可以讀取該文件,並把您的插入邏輯while循環

[Import CSV into MYSQL but ignore header row //打開csv文件以讀取 $ handle = fopen($ file_path,'r');

// read the first line and ignore it 
fgets($handle); 

while (($data = fgetcsv($handle, 1000, ',')) !== FALSE) { 
// do your thing 
}