我正在使用 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'],
)
);
干杯...
我有疑问
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'],
)
);
干杯...