2013-03-05 46 views
0

我在使用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')); 

以下行後,在$日誌對象的速率字段被以某種方式破壞,並且返回的垃圾等b,X,和O.5(其餘字段是不變)。

$cterm = (($conterm->format('%y') * 12) + $conterm->format('%m')); 

什麼可能導致數據丟失?

+0

如果您刪除了使用PHPExcel生成報表的行,這種損失是否仍然發生?我的猜測是PHPExcel正在搞亂你電腦的RAM。 – vcampitelli 2013-03-05 23:29:57

+0

我試過了。 PHPExcel不會影響它。 – Sergiu 2013-03-06 11:21:08

回答

0

嘗試使用MySQL TIMESTAMPDIFF函數,讓MySQL爲您做計算。無論如何,我認爲這樣會更有效率。

+0

謝謝你,TIMESTAMPDIFF效果很好。雖然PHP的問題仍然是黑暗的。 – Sergiu 2013-03-06 15:52:53