在直接的 mysql 脚本中,我会做这样的交易:
START TRANSACTION;
SELECT @A:=SUM(salary) FROM table1 WHERE type=1;
UPDATE table2 SET summary=@A WHERE type=1;
COMMIT;
我对事务在 PDO 中的工作方式有点困惑。看起来有 beginTransaction() 和 commit() 方法 - 所以我不确定这些只是简单的 SQL 的便利包装器吗?还是他们在幕后做更多的工作?
换句话说 - 下面的这些例子本质上是一样的吗?
示例 1:
$dbh->exec( 'START TRANSACTION' );
//...do some db work here...
$dbh->exec( "COMMIT" );
示例 2:
$dbh->beginTransaction();
//...do some db work here...
$dbh->commit();