首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >ZF2中的Zend是如何控制事务的?

ZF2中的Zend是如何控制事务的?
EN

Stack Overflow用户
提问于 2012-12-12 09:53:59
回答 2查看 13.8K关注 0票数 19

ZF1 Zend_Db参考手册中有一个关于执行事务的entire section

ZF2 Zend\Db reference manual缺乏任何有关交易的文档。

如何在ZF2中执行事务?示例代码会很有帮助。

EN

回答 2

Stack Overflow用户

发布于 2012-12-13 23:10:45

你已经做到了。开始、提交和回滚事务的正确方法如下:

代码语言:javascript
复制
$this->getAdapter()->getDriver()->getConnection()->beginTransaction();

$this->getAdapter()->getDriver()->getConnection()->commit();

$this->getAdapter()->getDriver()->getConnection()->rollback();

只需将其放在那里,您也可以获得Last ID由创建:

代码语言:javascript
复制
$this->getAdapter()->getDriver()->getConnection()->getLastGeneratedValue()

如果您使用的是pgSQL,则需要添加序列以返回上次创建的ID:

代码语言:javascript
复制
$this->getAdapter()->getDriver()->getConnection()->getLastGeneratedValue('mail_mailid_seq')
票数 41
EN

Stack Overflow用户

发布于 2019-12-12 15:14:09

我在控制器中使用了beginTransactionrollbackcommit

其中我在不同的模型上执行了许多事务,其中我使用了没有任何控制事务的预定义函数(对于单个数据库事务来说不是必需的)。

使用$this->getAdapter()->getDriver()->getConnection()->beginTransaction();

给出undefined getAdapter()方法上的错误。

所以我用下面的方法来执行,

代码语言:javascript
复制
  //begain tarnsaction
                $db = Zend_Db_Table_Abstract::getDefaultAdapter();

                $db->beginTransaction();

//rollback

                $db->rollback();

//commit db changes

                $db->commit();

希望能对解决问题有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13831582

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档