我正在开发一个用户上传excel [.xlsx]文件的应用程序,用于将数据转储到MySQL数据库中。我编程的方式是为每个导入创建一个LOG。这样用户就可以看到是否发生了任何错误等等。我的脚本在实现日志系统之前工作正常。
实现日志系统后,我可以看到插入数据库的重复行。 die()命令也无效。
它只是不断循环!
我在下面编写了示例代码。请告诉我的记录方法有什么不对。
注意:如果我删除日志[正在写入文件]脚本可以正常工作。
$file = fopen("20131105.txt", "a");
fwrite($file, "LOG CREATED".PHP_EOL);
foreach($hdr as $k => $v) {
$username = $v['un'];
$address = $v['adr'];
$message = $v['msg'];
if($username == '') {
fwrite($file, 'Error: Missing User Name'.PHP_EOL);
continue;
} else {
// insert into database
}
}
fwrite($file, PHP_EOL."LOG CLOSED");
fclose($file);
echo 1;
die();
答案 0 :(得分:0)
首先,您的die
语句在循环之后。它需要在你的循环中结束它;
其次,你正在循环$hdr
。它没有在你的片段中定义。它必须是一个数组。它包含什么?
var_dump($hdr);
答案 1 :(得分:0)
php manual中提供的foreach文档重点介绍
“ $ value的引用和最后一个数组元素在foreach循环之后仍然存在。建议通过unset()来销毁它。” [1]
。
尝试使用unset($value)
取消设置foreach中的值。这可能是重复值的原因。