3 回答

TA貢獻(xiàn)1833條經(jīng)驗(yàn) 獲得超4個(gè)贊
您可以創(chuàng)建一個(gè)腳本來解析您的csv文件并將數(shù)據(jù)放入db。
就像是:
$path = "yourfile.csv";
$row = 1;
if (($handle = fopen($path, "r")) !== FALSE) {
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
$row++;
$data_entries[] = $data ;
}
fclose($handle);
}
// this you'll have to expand
foreach($data_entries as $line){
$sql = "INSERT INTO ..."
$db->execute($line);
}

TA貢獻(xiàn)1877條經(jīng)驗(yàn) 獲得超6個(gè)贊
但是csv中的列名稱與數(shù)據(jù)庫表中的列名稱不同,我該怎么辦?
沒問題 您可以指定將哪個(gè)CSV列導(dǎo)入到哪個(gè)數(shù)據(jù)庫列中。
LOAD DATA INFILE語法
默認(rèn)情況下,當(dāng)在LOAD DATA INFILE語句的末尾未提供任何列列表時(shí),輸入行應(yīng)包含每個(gè)表列的字段。如果只想加載表的某些列,請指定列列表:
LOAD DATA INFILE 'persondata.txt' INTO TABLE persondata (col1,col2,...);
當(dāng)我發(fā)現(xiàn)INFILE語法太復(fù)雜時(shí),我想做的事情是使用圖形客戶端(如HeidiSQL)一起單擊適當(dāng)?shù)牧许樞颍ㄋ哂袌D形預(yù)覽),然后復(fù)制并粘貼生成的SQL查詢。

TA貢獻(xiàn)1841條經(jīng)驗(yàn) 獲得超3個(gè)贊
如果您只想將CSV文件中最后一列的前7個(gè)字符加載到表的uniqComments列中,則可以執(zhí)行以下操作...
load data local infile 'uniq.csv' into table tblUniq fields terminated by ','
enclosed by '"' lines terminated by '\n' (uniqName, uniqCity, @seven_chars)
set uniqComments=left(@seven_chars,7)
添加回答
舉報(bào)