【发布时间】:2013-02-20 13:07:27
【问题描述】:
我正在使用 Laravel 框架从 MySQL 数据库中查询一些数据。我不会发布整个查询,因为它很长。
$logs = DB::query('SELECT ... FROM .. JOIN ... WHERE .. GROUP BY .. ORDER BY');
我正在使用简单的 foreach 循环遍历结果并使用 PHPExcel 生成报告,如下所示:
foreach($logs as $log):
...
endforeach;
在循环内部,我正在计算月份中两个日期之间的差异,如下所示:
$cntr_startdate = new DateTime($log->start_date);
$cntr_enddate = new DateTime($log->end_date);
$conterm = $cntr_enddate->diff($cntr_startdate);
$cterm = (($conterm->format('%y') * 12) + $conterm->format('%m'));
在下一行之后,$log 对象中的 rate 字段以某种方式损坏并返回像 b、X 和 O.5 这样的垃圾(其余字段未触及)。
$cterm = (($conterm->format('%y') * 12) + $conterm->format('%m'));
什么可能导致数据丢失?
【问题讨论】:
-
如果去掉使用PHPExcel生成报表的行,还会出现这种丢失吗?我的猜测是 PHPExcel 正在弄乱您计算机的 RAM。
-
我试过了。 PHPExcel 不影响它。