0

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

2 回答 2

0

php 手册中给出的 foreach 文档突出显示


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


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

于 2013-11-05T06:28:42.147 回答
0

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

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

var_dump($hdr);
于 2013-11-05T04:33:23.860 回答