私はMySQLとトランザクションを使用することを学んでおり、それはうまく動作していないようです。MySQLトランザクションはエラーで停止しません
私はいくつかのテストコード作成: "ttest2は" 意図的エラーであった
$db->query('START TRANSACTION;');
$db->query('DELETE FROM test1 WHERE id=4');
$db->query('DELETE FROM ttest2 WHERE id=5');
$res = $db->commit();
(テーブルが間違っている)を。
通常のクエリでは、$ resはfalseになり、クエリは失敗します。しかし、トランザクションを実行すると、最初の削除が発生し、2番目の削除は無視され、$ resはまだtrueです。トランザクションが正しく実行されない限り、トランザクションで問合せが発生することはありません。なぜそれが真実に戻り、PHPでエラーをキャッチするのですか?
"トランザクションは、すべて正常に発生していない限り、クエリの実行を許可していないと考えました。" 「正しく」という言葉がなければ、あなたは正しいです。 – Johan