PHP在循环时写入文本文件

时间:2013-11-05 04:07:31

标签: php mysql excel fwrite

我正在开发一个用户上传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();

2 个答案:

答案 0 :(得分:0)

首先,您的die语句在循环之后。它需要在你的循环中结束它;

其次,你正在循环$hdr。它没有在你的片段中定义。它必须是一个数组。它包含什么?

var_dump($hdr);

答案 1 :(得分:0)

php manual中提供的foreach文档重点介绍


$ value的引用和最后一个数组元素在foreach循环之后仍然存在。建议通过unset()来销毁它。” [1]


尝试使用unset($value)取消设置foreach中的值。这可能是重复值的原因。