2015-07-20 33 views
-1

我目前有一個應用程序,顯示約4,000項。我從MySQL數據庫拉這個。我試圖創建一個按鈕,強制將所有項目從數據庫中下載到csv文件中。我怎麼去解決這個問題?如何使用php導出sql數據的csv文件?

csv.php

<?php 

header('Content-Type: text/csv; charset=utf-8'); 
header('Content-Disposition: attachment; filename=data.csv'); 

$output = fopen('php://output', 'w'); 

fputcsv($output, array('Column 1', 'Column 2', 'Column 3')); 

mysql_connect('localhost', 'root', 'root'); 
mysql_select_db('wp_xroads'); 
$rows = mysql_query('SELECT first_name,last_name,phone FROM bags'); 

while ($row = mysql_fetch_assoc($rows)) fputcsv($output, $row); 
?> 

HTML

<div class="col-md-2"> 
    <!-- Button to trigger csv file exporting --> 
    <form action="csv.php" method="get"> 
     <a class="btn btn-success" type="submit" target="_blank"> 
      Export CSV <span class="badge"><span class='glyphicon glyphicon-save-file'></span></span> 
     </a> 
    </form> 
</div> 

在此先感謝。 -ken

+0

https://gist.github.com/apocratus/936404 – yesitsme

+0

哪些錯誤絲毫你的代碼? – gonzalon

+0

@yesitsme,我如何將html中的按鈕鏈接到腳本? –

回答

2

SELECT INTO OUTFILELOAD DATA FILE相反。這將select語句的結果放入指定的文件中。沒有緩慢,zanny,非高性能的PHP循環。 export_options子句與LOAD DATA INFILE中的選項具有相同的風格。

https://dev.mysql.com/doc/refman/5.1/en/select-into.html

SELECT col1,col2,col3 INTO OUTFILE '/tmp/result.txt' 
    FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' 
    LINES TERMINATED BY '\n' 
    FROM test_table; 


SELECT first_name,last_name,phone INTO OUTFILE '/tmp/myBags.txt' 
    FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' 
    LINES TERMINATED BY '\n' 
    FROM bags;