0
我的理解是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」表示一個成功的結果。
如果我正確地理解了這一點,如果bot語句成功執行,它們都將被「提交」,但它會失敗,不會發生數據庫活動,並會生成一條錯誤消息,詳細描述失敗的第一條語句執行。
我真正的問題是,開始事務和提交應該駐留在try ... catch塊之內還是之外。
感謝, -dmd-
我的回答沒有回答你的問題嗎? –