[mysql]在 Propel2 中的多个表的交易

标签: MySQL PHP
发布时间: 2017/4/9 23:03:03
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

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

$con = Propel::getWriteConnection(AccountTableMap::DATABASE_NAME);

全球的 PDO 连接对象或到 2 表 (例如"帐户"和"书") 的连接能如何?

例如,处于 (伪代码) 我想要︰

$con = Propel::getWriteConnection(AccountTableMap::DATABASE_NAME, 
                                  BookTableMap::DATABASE_NAME);

解决方法 1:

你引用的例子使相当朴素。你的错误以为像你说的你的问题中连接到单个数据库表"帐户":。没有连接始终是对整个数据库。推进只是提供一种方法得到的连接句柄,使用一个表作为参数,令人困惑的是我给予你。

是吗

$con = Propel::getWriteConnection(AccountTableMap::DATABASE_NAME);

在任何桌子上,只是为了得到 $con 连接句柄。

交易受连接,不是语句。所以一旦你有了连接对象,您可以启动事务,和事务的整个点是你可以更改任意数量的表内该事务作为单个单元的工作 (交易)。

所以一旦你有 $con 你启动一个事务的句柄

$con->beginTransaction();

和您之间那份声明做出任何修改和

$con->commit();

$con->rollback();

将所有提交在一起或一起都已回滚。

官方微信
官方QQ群
31647020