保存在循环中

问题描述:

我创建了一个函数,它有一个无限循环和最后的延迟,以确保它每秒只执行一次。保存在循环中

此功能为壳类和它的目标是要保存/更新记录在三个不同的表,我使用命令“蛋糕的className”

我的问题是invoque它从控制台线:

我在控制台(Ctrl + C)停止循环,只有最后一条记录保存在数据库中。

我不知道是否有交易中的问题,我试图在保存和提交之前使用begin(),但问题仍然存在。

的代码是这样的:

$this->T1->begin(); 
$this->T2->begin(); 
$this->T3->begin(); 

if ($this->T1->save((array (
    'Field1' => $val1, 
    'Field2' => $val2, 
    'Field3' => $val3))) 
    && $this->T2->save(array (
     'Field1' => $val4, 
     'Field2' => $val5, 
     'Field3' => $val6))) 
    && $this->T3->saveField('Field1', $val7)) 
{ 
     $this->T1->commit(); 
     $this->T2->commit(); 
     $this->T3->commit(); 

     echo 'success message'; 
} 
+0

这不是一个循环,但一个多条件语句 – mark 2013-05-06 12:06:14

这可能是因为该ID仍然存在于每一个循环保存时,因为数据被合并,这往往发生在车型。

请尝试以下操作重置模型,使其不会加载之前的数据。

$this->Sale->create(false); 
$this->Bidagent->create(false); 
$this->Licitation->create(false); 

从您的代码段,虽然我不知道什么T1,T2和T3 ...如果他们都是模特那么他们需要同样的$this->Model->create(false);

参考:

+0

忘记编辑... T1,T2和T3的销售Bidagent和Licitation .. 。谢谢你的工作完美...只需要把它放在授权模型上,原因是创建新行的唯一方法,其他只是更新。谢谢 – Canastro 2010-01-08 01:39:06