将SQL数据库表中的内容导出到.csv文件。如果我添加列名,它会在尝试打开下载的.csv文件时给出这些错误:
但是,如果我在没有列的情况下导出它,它将打开正常而没有错误。我试过改变Content-Type:从text / csv到application / csv,没有改变任何东西。我没有想法。
<?php
header("Content-type: text/csv");
header("Content-Disposition: attachment; filename=applications.csv");
header("Pragma: no-cache");
header("Expires: 0");
ini_set('display_errors',1);
$private=1;
error_reporting(E_ALL ^ E_NOTICE);
mysql_connect("localhost", "root", "root") or die(mysql_error());
mysql_select_db("cif") or die(mysql_error());
$query = "SELECT * FROM applications";
$select_c = mysql_query($query) or die(mysql_error());
/* The line below is what I comment out to remove the column names */
$result.="ID,LAST_NAME,FIRST_NAME,ORGANIZATION,TITLE\n";
/* The line above is what I comment out to remove the column names */
while ($row = mysql_fetch_array($select_c, MYSQL_ASSOC))
{
$result.="{$row['ID']},";
$result.="{$row['LAST_NAME']},";
$result.="{$row['FIRST_NAME']},";
$result.="{$row['ORGANIZATION']},";
$result.="{$row['TITLE']},";
$result.="\n";
}
echo $result;
?>
答案 0 :(得分:1)
看起来您的列数不匹配。
标题行有5个条目,但每个后续行有6个(因为尾随逗号)。
您可以在标题行的末尾添加逗号,也可以从数据行中删除尾随的逗号。
编辑: SYLK文件以“ID”开头。 http://support.microsoft.com/kb/323626
让你的第一个专栏名称不以“ID”开头,你就可以了。