在Propel2 ORM (http://propelorm.org/documentation/05-transactions.html)的文档中,有一个如何在事务中包装查询的示例。连接到一个数据库表"Account":
$con = Propel::getWriteConnection(AccountTableMap::DATABASE_NAME);如何获得全局PDO连接对象或到两个表的连接(例如:“帐户”和“书”)?
例如,这就是我希望得到的(伪代码):
$con = Propel::getWriteConnection(AccountTableMap::DATABASE_NAME,
BookTableMap::DATABASE_NAME);发布于 2015-09-17 08:30:43
你引用的例子使它变得相当简单。您的错误在于,正如您在问题中所说的,连接到单个数据库表"Account":。不,连接总是指向整个数据库。Propel只是提供了一种获取使用表作为参数的连接句柄的方法,这让我感到困惑。
你做了
$con = Propel::getWriteConnection(AccountTableMap::DATABASE_NAME);在任何表上,只为了获得$con连接句柄。
事务由连接控制,而不是语句控制。因此,一旦您拥有了连接对象,您就可以启动一个事务,事务的全部意义是,您可以将该事务中的任意数量的表更改为一个单一的工作单元(事务)。
因此,一旦您有了$con句柄,您就启动了一个事务
$con->beginTransaction();以及您在该声明与
$con->commit();或
$con->rollback();所有的人都会一起表演还是一起回滚。
https://stackoverflow.com/questions/32612911
复制相似问题