Задать вопрос
@ortsuev33

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

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

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

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

$db->rollback();
return false;


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

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

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽