我尝试学习如何使用此脚本将数据导出到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_ *进行测试。
答案 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
然后您可以附加它,否则它将为您提供始终未声明的变量错误。