Я понимаю, что InnoDB теперь является двигателем по умолчанию для MySQL. С этими знаниями я начинаю разбираться в транзакциях.Сделки с использованием PDO
Вот то, что я до сих пор ...
try{
$pdo->beginTransaction();
$stmnt = $pdo->prepare ("delete from playing where uniq = :uniq");
$stmnt->bindParam (':uniq',$uniq);
$stmnt->execute();
$stmnt = $pdo->prepare ("insert into removals (playdate, time, vid) values (:playdate, :time, :vid");
$stmnt->bindParam (":playdate",$playdate);
$stmnt->bindParam (":time", $time);
$stmnt->bindParam (":vid", $vid);
$stmnt->execute();
$pdo->commit();
echo "1"; // success
return;
}
catch (PDOException $e){
$pdo->rollback();
echo $e->getMessage();
}
Это вызывается JQuery с результатом «1», что указывает на успех.
Если я правильно понимаю это, если операторы бота успешно выполняются, они оба будут «совершены», однако они либо не сработают, но и не будут выполняться операции с базой данных, и будет выведено сообщение об ошибке с подробным описанием выполнения первого оператора.
Мой настоящий вопрос заключается в том, должна ли начальная транзакция и фиксация находиться внутри или за пределами блока try ... catch.
Спасибо, -dmd-
Был ли мой ответ ответом на ваш вопрос? –