2012-06-20 65 views
0

我遇到了一些问题,我不知道我是如何解决它的。Codeigniter Mysql不完成循环

问题是,我有500个寄存器在另一个数据库中,并且获取它们的查询具有它们,但是当我在数据库中插入/更新它们的循环时,foreach循环没有达到结束,并没有显示任何错误。

这里是周期:

foreach ($this->getMetaEmpregado()->getAll()->result_array() as $modelData) { 
     $oEmpregado = $this->getEmpregadoObject($modelData); 

     $arrayEmpWhere = array(
      'idempregado' => $oEmpregado->getIdEmpregado(), 
      'idsociedade' => $oEmpregado->getIdSociedade(), 
      'nif' => $oEmpregado->getNif() 
     ); 

     if ($this->getWayUtilizador()->get($arrayEmpWhere)->num_rows() == 0) { 
      $countInsert++; 
      $this->insertNewEmp($oEmpregado); 
     } else { 
      $countUpdate++; 
      $this->UpdateEmp($oEmpregado); 
     } 
    } 

echo "Total Updates: $countUpdate Total Inserts: $countInsert<br>"; 

它down't鞋回波到底由于其周围的260寄存器停止,但有时达到300人甚至不100.

此致,
Elkas

+0

您需要增加php脚本的执行时间 – AlphaMale

+0

尝试启用开发服务器上的所有错误。这会告诉你出了什么问题,脚本运行时间太长/内存不足。也许甚至会在那里抛出xdebug,看看循环数据发生了什么。 – alxbrd

+0

我刚刚发现它为什么做错了。这是一个DEFINE变量,很久以前用了10秒......但这个项目使用了大量的数据,连接速度也慢得多。 10秒是不够的。 标记为已解决。 – Elkas

回答

1

看来,scripttaking too long,你需要increaseMax_Execution_Time的php.ini

您可以使用的ini_set方法去改变它,就像这样:

ini_set('max_execution_time', 600); //600 seconds = 10 minutes 

希望这有助于。

+0

我已经在120,但脚本运行了10/20秒。但我会尝试。 – Elkas

+0

尝试它并更新结果... – AlphaMale