sql >> データベース >  >> RDS >> Mysql

PHP、MySQL、PDOトランザクション-tryブロック内のコードはcommit()で停止しますか?

    何らかの理由でトランザクションが失敗した場合、コードはエラーが発生したまさにその行で停止します 終了すると、実行は直接catchブロックにジャンプします。したがって、コードブロック2で記述した方法で十分です。

    ロールバック後に常に例外を再スローする必要があることに注意してください。 そうしないと、何が問題だったのかわかりません。だからそうあるべきです

    try{
        $stmt = $db->prepare(... 1 ...);
        $stmt->execute();
    
        $stmt = $db->prepare(... 2 ...);
        $stmt->execute();
    
        $stmt = $db->prepare(... 3 ...);
        $stmt->execute();
    
        $db->commit();
    
        return true;
    }catch(Exception $e){
        $db->rollBack();
        throw $e;
    }
    


    1. 複合キーでのauto_incrementの使用

    2. PHPとMySQLでタイムゾーンを設定する

    3. MySQLの文字列から不要な先頭文字を削除する方法

    4. ORA-01861:リテラルがフォーマットstringと一致しません