Php 使用PDO的事务
我的理解是InnoDB现在是MySQL的默认引擎。有了这些知识,我开始钻研交易 这是我到目前为止所拥有的Php 使用PDO的事务,php,mysql,pdo,transactions,Php,Mysql,Pdo,Transactions,我的理解是InnoDB现在是MySQL的默认引擎。有了这些知识,我开始钻研交易 这是我到目前为止所拥有的 try{ $pdo->beginTransaction(); $stmnt = $pdo->prepare ("delete from playing where uniq = :uniq"); $stmnt->bindParam (':uniq',$uniq); $stmnt->execute();
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语句成功执行,它们都将被提交,但是要么失败,不会发生数据库活动,并且将生成一条错误消息,详细说明第一个失败的语句执行
我真正的问题是begin事务和commit应该位于try…catch块之内还是之外
谢谢,
-dmd-为了可读性和清洁度,是的,它应该在try块内。但这真的不重要。如果您调用回滚,它只是声明要提交或回滚的内容。我的回答没有回答您的问题吗?