実際の列名はaccountとpasswdであるため、2番目のクエリは失敗しますが、最初のクエリは引き続きデータベースに挿入されます。
$sql1 = "INSERT INTO users (account, passwd) VALUES ('account+1', 'password+1')";
$sql2 = "INSERT INTO users (account, password) VALUES ('account+2', 'password+2')";
try {
$db->beginTransaction();
$db->query($sql1);
$db->query($sql2);
$db->commit();
} catch (Exception $e) {
$db->rollback();
die($e->getMessage());
}
トランザクションはエラーなしで正常に開始されました。問題は、ロールバックせず、クエリの失敗に関係なく常に行が挿入されることです。
MySQLバージョン5.5.25およびテーブルタイプはInnoDBです。