2011-09-02 9 views
7

IN Magento Tek bir işlemde birden fazla tabloya nasıl veri ekleyebilirim ve işlemde hata varsa geri alma. ?? Özel sorgular yazabilir ve işlemleri kullanabilirim ancak Magento yöntemlerini kullanarak yapabilirsem tercih ederim.Magento Veritabanı İşlemi

cevap

6

Mage :: getModel ('core/resource_transaction') öğesini deneyebilirsiniz. Bunun için belge gibi here.

Ama muhtemelen daha kullanışlı, burada bir siparişten fatura oluşturmak için example kullanıyor.

+0

Teşekkürler, anladım. – sushantsahay

+2

Örnek bağlantı içeriği, yanıtla ilgili değil – gSorry

27

Yapmaya çalıştığınız şey, model tasarrufu yapmaksa kabul edilen yanıt iyi. Bu geri alma ile birlikte herhangi bir sayı zincirleme sağlar.

Ancak, rulo geri tetikleyebilir veya kendilerini geri gürüldüyor Başka işlemler vardır, o zaman bir şey daha düşük seviyede kullanmak istiyorsanız:

$connection = Mage::getSingleton('core/resource')->getConnection('core_write'); 
try { 
    $connection->beginTransaction(); 

    // Make saves and other actions that affect the database 

    $connection->commit(); 
} catch (Exception $e) { 
    $connection->rollback(); 
} 

Ayrıca bağlantıyı alabilirsiniz Bir model, ancak mevcut bir olmayabilir.