@ortsuev33

В чем разница между транзакцией и самодельной проверки?

$res=$query->execute();
if($res){
$query->execute();
}

и
$db->beginTransaction();
$query->execute();
$query->execute();
$db->commit();

я пытался как мог объяснить надеюсь суть поняли
  • Вопрос задан
  • 49 просмотров
Решения вопроса 1
mhthnz
@mhthnz
PHP, YII2, Golang, Linux
Разница в том, что в случае с транзакцией вы можете откатить все изменения. И с транзакциями обычно тоже используются условия:
$db->beginTransaction();
if ($query->execute()) {
    if ($query->execute()) {
        $db->commit();
        return true;
    }
}

$db->rollback();
return false;


В таком случае, если хоть один запрос не сработал, то транзакция откатывает все изменения. А в первом вашем случае если 1 запрос отработал, а второй нет, то данные не откатываются.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы