ストレート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();