将数据导出到csv后出现未定义的变量错误

时间:2013-04-12 13:38:20

标签: php

我尝试学习如何使用此脚本将数据导出到csv,是的我可以导出所有数据,但在csv中我发现一个错误(在localhost中运行时):

<b>Notice</b>:  Undefined variable: csv_output in <b>C:\xampp\htdocs\import_export\index.php</b> on line <b>10</b><br />

不确定原因,但我可以在没有任何问题的情况下在实时服务器中运行此代码。

完整代码

error_reporting(E_ALL);

mysql_connect("localhost", "root", "") or die(mysql_error());
mysql_select_db("csv") or die(mysql_error());

$file  = "product_export"; // csv name.

//CSV Header
$csv_output .= "ID " . ", ";
$csv_output .= "Content " . ", ";

$csv_output .= "\n";

//CSV Content rows
$query = mysql_query("SELECT * FROM `users`");
while ($row = mysql_fetch_array($query)) {
    $csv_output .= $row["id"] . ", ";
    $csv_output .= $row["content"] . ", ";

    $csv_output .= "\n";
}

$filename = $file . "_" . date("d-m-Y_H-i");

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;

p / s:我只使用mysql_ *进行测试。

3 个答案:

答案 0 :(得分:4)

在第一行:

//CSV Header
$csv_output .= "ID " . ", ";

您正在尝试将id连接到变量, 但变量从未被定义过。

第一次使用变量时,请勿使用'等号'前面的点 所以试试这个:

In the first line:

//CSV Header
$csv_output = "ID " . ", ";

答案 1 :(得分:2)

PHP只是让你知道你正在使用尚未定义的变量。这是一个通知,而不是警告或错误。

此行提示通知:

$csv_output .= "ID " . ", "; 

这是第一次使用此变量,此时您不需要连接。简单的解决方法是将其更改为:

$csv_output = "ID " . ", ";

如果您不希望PHP吐出通知,您可以将脚本的第一行更改为:

error_reporting(E_ALL ^ E_NOTICE);

答案 2 :(得分:0)

使用.=附加变量需要您首先以适当的形式声明变量,例如:$variable = $value然后您可以附加它,否则它将为您提供始终未声明的变量错误。