ZF1 Zend_Db参考手册中有一个关于执行事务的entire section。
ZF2 Zend\Db reference manual缺乏任何有关交易的文档。
如何在ZF2中执行事务?示例代码会很有帮助。
发布于 2012-12-13 23:10:45
你已经做到了。开始、提交和回滚事务的正确方法如下:
$this->getAdapter()->getDriver()->getConnection()->beginTransaction();
$this->getAdapter()->getDriver()->getConnection()->commit();
$this->getAdapter()->getDriver()->getConnection()->rollback();
只需将其放在那里,您也可以获得Last ID由创建:
$this->getAdapter()->getDriver()->getConnection()->getLastGeneratedValue()
如果您使用的是pgSQL,则需要添加序列以返回上次创建的ID:
$this->getAdapter()->getDriver()->getConnection()->getLastGeneratedValue('mail_mailid_seq')
发布于 2019-12-12 15:14:09
我在控制器中使用了beginTransaction
、rollback
和commit
。
其中我在不同的模型上执行了许多事务,其中我使用了没有任何控制事务的预定义函数(对于单个数据库事务来说不是必需的)。
使用$this->getAdapter()->getDriver()->getConnection()->beginTransaction();
给出undefined getAdapter()
方法上的错误。
所以我用下面的方法来执行,
//begain tarnsaction
$db = Zend_Db_Table_Abstract::getDefaultAdapter();
$db->beginTransaction();
//rollback
$db->rollback();
//commit db changes
$db->commit();
希望能对解决问题有所帮助。
https://stackoverflow.com/questions/13831582
复制相似问题