Получить количество строк, обновленных транзакцией Laravel DBPhp

Кемеровские программисты php общаются здесь
Anonymous
Получить количество строк, обновленных транзакцией Laravel DB

Сообщение Anonymous »

Я выполняю транзакцию с БД следующим образом:

Код: Выделить всё

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(); и возвращаю его в своем ответе?

EDIT

$updates содержит массив ключей = value (где ключ — это имя столбца).

Если произойдет такое обновление: 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.

Это то, что я пытаюсь определить в своем коде: после фиксации транзакции были ли действительно обновлены какие-либо значения.

Подробнее здесь: https://stackoverflow.com/questions/269 ... ransaction

Вернуться в «Php»