DB::connection('mysql')->rollback() is not working when using Laravel with MySQL

Viewed 21
DB::connection('mysql')->rollback() 

is not working in Laravel with MySQL database. I'm using two databases in our application which are mysql & pgsql.

DB::connection('pgsql')->rollback() 

is working properly

Structure of code:

DB::connection($connection)->beginTransaction();
try {
    $sale_id = Sale::on($connection)->insertGetId($sale_data);
    if($sale_id) {
        foreach($input_details as $each_detail) {
            $sub_sale_id = SaleItem::on($connection)->insertGetId($insert_detail);
            if(!$sub_sale_id) {
                DB::connection($connection)->rollback();
                return [
                    'status'    =>  $response_code['error']
                ];
            }
        }
        DB::connection($connection)->commit();
        return [
            'status'    =>  $response_code['success']
        ];
    } else {
        DB::connection($connection)->rollback();
    }
} catch (\Exception $exception) {
    DB::connection($connection)->rollback();
}
return [
    'status'    =>  $response_code['error']
];
0 Answers
Related