-2

我尝试学习如何使用此脚本将数据导出到 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_* 进行测试。

4

3 回答 3

4

在第一行:

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

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

第一次使用变量时不要使用“等号”前面的点,所以试试这个:

In the first line:

//CSV Header
$csv_output = "ID " . ", ";
于 2013-04-12T13:42:12.310 回答
2

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

此行正在提示通知:

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

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

$csv_output = "ID " . ", ";

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

error_reporting(E_ALL ^ E_NOTICE);
于 2013-04-12T13:40:15.670 回答
0

附加变量.=需要您首先以正确的形式声明变量,例如:$variable = $value然后你可以附加它,否则它会给你总是未声明的变量错误。

于 2013-04-12T13:45:10.857 回答