【问题标题】:I am using laravel 4.2 i want to roll back database if API calls fails我正在使用 laravel 4.2 如果 API 调用失败,我想回滚数据库
【发布时间】:2016-02-17 13:21:50
【问题描述】:

我有疑问

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();

rollback() 返回 NULL 并且不回滚

【问题讨论】:

    标签: sql laravel-4 rollback


    【解决方案1】:

    使用

    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'],
                    )
                );
    

    干杯...

    【讨论】:

    • 仍然没有返回任何内容
    猜你喜欢
    • 2014-03-22
    • 1970-01-01
    • 1970-01-01
    • 2023-03-31
    • 2015-03-16
    • 2022-01-10
    • 2015-08-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多