ThinkPHP实现事务回滚示例代码(附加:PDO的事务处理)
ThinkPHP的事务回滚示例如下:
$m=D('YourModel');//或者是M(); $m2=D('YouModel2'); $m->startTrans();//在第一个模型里启用就可以了,或者第二个也行 $result=$m->where('删除条件')->delete(); $result2=m2->where('删除条件')->delete(); if($result && $result2){ $m->commit();//成功则提交 }else{ $m->rollback();//不成功,则回滚 }
PDO的事务回滚处理:
$servername="localhost"; $username="root"; $password="admin"; $dbname="test"; try{ $conn=new PDO("mysql:host=$servername;dbname=$dbname",$username,$password); $conn->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION); //开始事务 $conn->beginTransaction(); $conn->exec("INSERT INTO `hello`(`firstname`,`lastname`,`email`)VALUES('YE','XIAMING','yexianming@163.com')"); $conn->exec("INSERT INTO `hello`(`firstname`,`lastname`,`email`)VALUES('YE','CONG','yecong@163.com')"); $conn->exec("INSERT INTO `hello`(`firstname`,`lastname`,`email`)VALUES('FANG','MENG','fangmeng@168.com')"); //提交事务 $conn->commit(); echo "New records created successfully!"; }catch(PDOException $e){ //回滚事务 $conn->rollBack(); echo $sql."<br>".$e->getMessage(); } $conn=NULL;