首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Propel2中具有多个表的事务

Propel2中具有多个表的事务
EN

Stack Overflow用户
提问于 2015-09-16 15:31:34
回答 1查看 323关注 0票数 1

在Propel2 ORM (http://propelorm.org/documentation/05-transactions.html)的文档中,有一个如何在事务中包装查询的示例。连接到一个数据库表"Account":

代码语言:javascript
复制
$con = Propel::getWriteConnection(AccountTableMap::DATABASE_NAME);

如何获得全局PDO连接对象或到两个表的连接(例如:“帐户”和“书”)?

例如,这就是我希望得到的(伪代码):

代码语言:javascript
复制
$con = Propel::getWriteConnection(AccountTableMap::DATABASE_NAME, 
                                  BookTableMap::DATABASE_NAME);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-17 08:30:43

你引用的例子使它变得相当简单。您的错误在于,正如您在问题中所说的,连接到单个数据库表"Account":。不,连接总是指向整个数据库。Propel只是提供了一种获取使用表作为参数的连接句柄的方法,这让我感到困惑。

你做了

代码语言:javascript
复制
$con = Propel::getWriteConnection(AccountTableMap::DATABASE_NAME);

在任何表上,只为了获得$con连接句柄。

事务由连接控制,而不是语句控制。因此,一旦您拥有了连接对象,您就可以启动一个事务,事务的全部意义是,您可以将该事务中的任意数量的表更改为一个单一的工作单元(事务)。

因此,一旦您有了$con句柄,您就启动了一个事务

代码语言:javascript
复制
$con->beginTransaction();

以及您在该声明与

代码语言:javascript
复制
$con->commit();

代码语言:javascript
复制
$con->rollback();

所有的人都会一起表演还是一起回滚。

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

https://stackoverflow.com/questions/32612911

复制
相关文章

相似问题

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