好的,所以我有以下脚本将使用php从我的数据库导出数据。 一切正常,除非我尝试在excel中打开文件,我得到“文件已损坏”。 我之前使用过这个脚本,我无法弄清楚它为什么不起作用。这可能是一个我看不到的简单解决方案。提前谢谢!
$link = mysql_connect($host, $user, $pass) or die("Can not connect." . mysql_error());
mysql_select_db($db) or die("Can not connect.");
$result = mysql_query("SHOW COLUMNS FROM trans",$link);
$i = 0;
if (mysql_num_rows($result) > 0) {
while ($row = mysql_fetch_assoc($result)) {
$csv_output .= $row['Field'].",";
$i++;
}
}
$csv_output .= "\n";
$values = mysql_query("SELECT * FROM trans",$link);
while ($rowr = mysql_fetch_row($values)) {
for ($j=0;$j<$i;$j++) {
$csv_output .= $rowr[$j].",";
}
$csv_output .= "\n";
}
$filename = date("Y-m-d_H-i",time());
header("Content-type: application/vnd.ms-excel");
header("Content-disposition: csv" . date("Y-m-d") . ".csv");
header( "Content-disposition: filename=".$filename.".csv");
print $csv_output;
exit;
答案 0 :(得分:1)
我认为内容类型不正确。请尝试使用此代码:
header("Content-type: text/csv");
答案 1 :(得分:0)
我在这里有一些建议:
SELECT INTO OUTFILE
?如果可能的话,这可能是最好的方法。SELECT INTO OUTFILE
,PHP具有用于编写CSV输出的本机函数,可以处理诸如转义之类的内容。有关详细信息,请参阅fputcsv() manual page。用户评论中有一些示例显示如何直接输出它。