我正在使用 laravel 4.2 如果 API 调用失败我想回滚数据库

I am using laravel 4.2 i want to roll back database if API calls fails

我有疑问

DB::beginTransaction();
$result=self::insert(
                array(
                    'user_id' => $user->id,
                    'old_main_balance' => $input['main_balance'],
                    'new_main_balance' => $mainBalance-$input['amount'],
                    'amount_transferred' => $input['amount'],
                    'transfer_type' => $transfer_type,
                    'game_id' => $input['game'],
                )
            );

如果查询执行无误,那么我将调用 API 如果 API 调用失败则回滚 sql 否则提交

$url="http://example.com";
$server_output=model::curl_func($url,$post);
if($server_output)
 DB::commit();
else
 DB::rollback();

它回滚() return NULL 并且它没有回滚

使用

DB::insert('insert into table (user_id, old_main_balance, new_main_balance, amount_transferred, transfer_type, game_id) values (?, ?, ?, ?, ?, ?)', array($user->id, $input['main_balance'], $mainBalance->$input['amount'], $input['amount'], $transfer_type, $input['game']));

而不是

$result=self::insert(
                array(
                    'user_id' => $user->id,
                    'old_main_balance' => $input['main_balance'],
                    'new_main_balance' => $mainBalance-$input['amount'],
                    'amount_transferred' => $input['amount'],
                    'transfer_type' => $transfer_type,
                    'game_id' => $input['game'],
                )
            );

干杯...