Döngünün içinde kaydet

1 Cevap php

Ben bir sonsuz döngü ve sadece saniyede bir kez çalıştırmak emin olmak için sonunda bir gecikmeye sahip bir fonksiyon oluşturduk.

Bu fonksiyon, bir kabuk sınıf olduğunu ve hedefi üç farklı tablolarda / güncelleme kayıtlarını kaydetmek için ve ben komut 'pasta Sınıfadı' kullanarak konsol satırından invoque

Benim sorun:

Ben konsolda (Ctrl + C) Döngüyü durdurmak ve sadece son kayıt veritabanına kaydedilir.

Işlem ile bazı sorunlar varsa ben bilmiyorum, ben önce kaydetmek ve sonra commit () başlamak kullanmaya çalıştı, ama sorun sürdürmüşlerdi.

Kod böyle bir şey:

$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';
 }

1 Cevap

Id veri birleştirilmiş olur, çünkü bir döngüde kaydederken sık olur hala modellerin her birinde mevcut olduğu için olabilir.

Onlar önceki verileri yüklemek kalmamak modelleri sıfırlamak için aşağıdaki çalışın.

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

Ben T1, T2 ve T3 nelerdir emin değilim ama onlar modeller eğer kod parçacığını dan ... sonra aynı $this->Model->create(false) gerekir;

Referans: