2015-07-20 31 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;