Magento数据库事务

时间:2011-09-02 11:52:36

标签: magento transactions

IN Magento如果在一个事务中多个表中插入数据,如果进程中有任何错误,则回滚。我可以编写自定义查询并使用事务,但我更愿意,如果我可以使用Magento方法来完成它。

2 个答案:

答案 0 :(得分:28)

如果您尝试做的是模型保存,则接受的答案很好。这将允许您将任何数字与回滚链接在一起。

但是,如果您正在执行可能触发回滚或正在回滚的其他操作,那么您希望使用更低级别的内容:

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

您也可以从模型中获取连接,但可能没有可用的连接。

答案 1 :(得分:7)

您可以尝试Mage :: getModel('core / resource_transaction')。它的文档是here

但可能更有用,这里有example使用它来创建订单的发票。