保存在循环中
问题描述:
我创建了一个函数,它有一个无限循环和最后的延迟,以确保它每秒只执行一次。保存在循环中
此功能为壳类和它的目标是要保存/更新记录在三个不同的表,我使用命令“蛋糕的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';
}
答
这可能是因为该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
这不是一个循环,但一个多条件语句 – mark 2013-05-06 12:06:14