如何从数据库中删除数据?

时间:2014-06-16 06:56:26

标签: php cakephp

我的数据库中有两个表BrokerInfo和BrokerBank。如果数据保存在BrokerInfo中,那么它将启动进程以在BrokerBank表中保存数据。如果它无法在表2中保存数据,那么它应该从数据库中的表1中删除数据。我在数据库中从table1中删除数据时遇到问题,我该怎么办? 这是我添加操作的代码:

public function add() {
    if ($this->request->is('post'))
    {   

        $this->BrokerInfo->create();

            $this->BrokerInfo->save($this->request->data);
            $id=$this->BrokerInfo->getLastInsertId();
            $this->BrokerBank->begin();
            $this->BrokerBank->create();

            $this->request->data['BrokerBank']['broker_info_id'] = $id;

            if($this->BrokerBank->save($this->request->data))
            {   

                $this->BrokerInfo->commit();
                $this->redirect(array('action' => 'index'));
            }
            else 
            {   
                $this->BrokerInfo->rollback();              
                $this->Session->setFlash(__('The information could not be saved. Please, try again.'));
            }
    }
}

1 个答案:

答案 0 :(得分:1)

开始交易

$this->BrokerBank->begin();

在你做任何事之前。如果保存失败,则所有内容都会自动撤消。目前,在开始事务之前,您将对table1进行保存。这意味着它不会在回滚中恢复。