2011-09-02 55 views
7

IN Magento Làm thế nào tôi có thể chèn dữ liệu vào nhiều bảng trong một giao dịch và rollback nếu có bất kỳ lỗi nào trong quá trình. ?? Tôi có thể viết các truy vấn tùy chỉnh và sử dụng các giao dịch nhưng tôi thích nếu tôi có thể làm điều đó bằng các phương pháp Magento.Giao dịch cơ sở dữ liệu Magento

Trả lời

6

Bạn có thể thử Mage :: getModel ('core/resource_transaction'). Tài liệu cho nó như là here.

Nhưng có thể hữu ích hơn, dưới đây là sử dụng example để tạo hóa đơn từ đơn đặt hàng.

+0

Cảm ơn, tôi hiểu rồi. – sushantsahay

+2

Nội dung của liên kết mẫu không liên quan đến câu trả lời – gSorry

27

Câu trả lời được chấp nhận là tốt nếu những gì bạn đang cố gắng làm là tiết kiệm mô hình. Điều này sẽ cho phép bạn chuỗi bất kỳ số nào cùng với rollback.

Tuy nhiên, nếu bạn đang thực hiện hành động khác mà có thể kích hoạt roll-back hoặc đang lăn lại bản thân, sau đó bạn muốn sử dụng một cái gì đó nhiều hơn ở mức độ thấp:

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

Bạn cũng có thể nhận được kết nối từ một mô hình, nhưng có thể không có sẵn.

Các vấn đề liên quan