2016-02-26 45 views
0

創建包含100個以上字段的CSV文件的最佳方法是什麼?查詢mysql,放置空字段,並使用PHP將數據導出爲CSV

一個簡單的例子是(包涵):

如果我有5列表(X,O,#,T,P)與行的X量和CSV格式需要是

X,,,,O,,,,T,P,,,,,,#,,, 

謝謝!

+0

您可以選擇您想要的字段或選擇*並輸出到csv文件。 – user2260040

+0

@ user2260040他的問題是如何在他選擇的列之間創建所有空字段。 – Barmar

+0

我需要所有的領域。我正在尋找最好的/正確的方式來做到這一點在空字段也被插入。 – tai

回答

0

你可以直接使用MySQL查詢

"SELECT column1, column2, column3 INTO OUTFILE '<filename>' FIELDS TERMINATED BY ',' ENCLOSED BY '\"' ESCAPED BY '\\' LINES TERMINATED BY '\r\n' FROM table1;" 
0

一種方法是你可以把虛擬列select查詢本身導出表數據爲CSV文件,然後只需創建一個從輸出CSV

select X,'','','',O,'','','',T,P,'','','','','',#,'','' from table_name; // this will by default give you your CSV structured output. 

$fp = fopen('file_name', 'w'); 

fputcsv($fp, $values); 
0

您可以在SELECT子句中創建大量空字段

SELECT X, '' AS col2, '' AS col3, '', O, '', '', '', '', T, P, '', '', '', '', '', '', `#`, '', '' 
INTO OUTFILE 'filename.csv' 
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' 
LINES TERMINATED BY '\n' 
FROM yourTable; 

當讀取文件回表,您可以指定哪些文件的領域進入表是這樣的:

LOAD DATA INFILE 'filename.csv' 
INTO TABLE yourTable 
(X, @dummy, @dummy, @dummy, O, @dummy, @dummy, @dummy, @dummy, T, P, @dummy, @dummy, @dummy, @dummy, @dummy, @dummy, `#`, @dummy, @dummy); 

@dummy變量接收這些文件中的字段的值,而列名接受這些文件字段。

+0

如果我使用select查詢我將如何輸入標題信息? – tai

+0

使用列別名。我更新了我的答案,以顯示頭幾列的別名,我沒有在整個過程中重複它。 – Barmar