【发布时间】:2015-01-10 13:43:46
【问题描述】:
我这样执行数据库事务:
DB::beginTransaction();
try
{
foreach ($updates as $column_name => $new_value) {
DB::table('my_table')
->where('id', '=', $line_id)
->update(array($column_name => $new_value));
}
DB::commit();
return Response::make('Updated', 200);
}
catch (Exception $ex)
{
DB::rollback();
return Response::make('Error - '. $ex->getMessage(), 500);
}
当我执行DB::commit(); 并在我的回复中返回时,是否可以获得受影响/更新的行数?
编辑
$updates 包含 key = value 数组(其中 key 是列名)。
如果发生这样的更新:UPDATE some_table SET some_number = some_number WHERE id = 1 所产生的受影响行数将为0(即没有真正改变)。
但是,如果发生这样的更新:例如UPDATE some_table SET some_number = some_number + 1 WHERE id = 1,那么这将导致1 的受影响行数。
这是我试图在我的代码中确定的,一旦提交事务,是否真的更新了任何值。
【问题讨论】:
标签: php database laravel-4 transactions