比如同时删数据还有增添数据,如果某单方面出错会导致产生脏数据影响结果,此时需要事务回滚。若是单操作数据库,则无需使用
java:是在service的实现类中使用@Transactional
/*
* 使用注解控制事务的优点
*/
具体是一个操作完,判断其状态再进行下一个事务处理
php:
$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;