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

php/mysqlでトランザクションを使用する方法

    mysql_query('START TRANSACTION');を発行するだけです。 挿入物のすべてでエラーをチェックします。それらの1つが成功しない場合は、残りのクエリを実行せずにすぐにROLLBACKを発行します。すべてがうまくいけば、COMMITを発行します。

    if-elseでネストのレベルが多すぎるのを避けるために、それらをtry-catchブロックに入れる方が簡単な場合があります。

    // START TRANSACTION
    try{
        // INSERT 1
        if(failed)
            throw new Exception();
    
        // INSERT 2
        if(failed)
            throw new Exception();
    
        // INSERT 3
        if(failed)
            throw new Exception();
    
        // COMMIT
    }
    catch(Exception $e){
        // ROLLBACK
    }
    

    PHPのPDO拡張機能 も確認することをお勧めします。 。トランザクションはその機能の一部です。



    1. HQLはexecuteUpdateで不完全な「クロスジョイン」を生成しています

    2. jQueryオートコンプリートをPHPソースで動作させる

    3. データベースの監視-SCUMMダッシュボードを使用したPrometheusのトラブルシューティング

    4. subselectsqlクエリはmysql4では機能しません