Получить количество строк, обновленных транзакцией 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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