2011-09-02 87 views
7

IN Magento Jak mogę wstawić dane do wielu tabel w pojedynczej transakcji i wycofać, jeśli wystąpił błąd w procesie? Potrafię pisać niestandardowe zapytania i wykorzystywać transakcje, ale wolałbym, jeśli mogę to zrobić za pomocą metod Magento.Transakcja z bazą danych Magento

Odpowiedz

6

Możesz wypróbować Mage :: getModel ("core/resource_transaction"). Dokumentacja do niego, takich jak to jest here.

Ale prawdopodobnie bardziej przydatny, tutaj jest example korzystania z niego w celu utworzenia faktury z zamówienia.

+0

Dzięki, mam to. – sushantsahay

+2

Treść przykładowego łącza nie jest związana z odpowiedzią – gSorry

27

Przyjęta odpowiedź jest w porządku, jeśli próbujesz zrobić to zapisuje model. Umożliwi to powiązanie dowolnej liczby z wycofaniem.

Jeżeli jednak jesteś wykonywania innych czynności, które mogą powodować roll-back lub są wycofywanie się, a potem chcesz użyć czegoś więcej niskim poziomie:

$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(); 
} 

Można również uzyskać połączenie z model, ale może nie być dostępny.

Powiązane problemy