PDO事务处理transaction
作用:出错则还原
开启事务处理:
$数据库连接对象->beginTransaction();
结束事务处理:
$数据库连接对象->commit();
事务回滚操作
$数据库连接对象->rollBack(); //必须配合事务处理和异常中断操作
否则异常回滚后,还是会执行事务提交操作
异常中断操作:
$数据库连接对象->setAttribute(PDO::ERRMODE,PDO::ERRMODE_EXCEPTION);
在try语句中设置,异常回滚后中断程序,不再执行try后续操作
代码示例:
<?php
echo '<pre>';
require_once 'singletonPDO.php';
$pdo=singlePdo::getPdo();
$pdo->exec('set names utf8');
$pdo->query('set names utf8');
try{
$pdo->beginTransaction();
$sql="update userinfo set password='115' where userName=? ";
$pre=$pdo->prepare($sql);
$pre->execute(['morgen']);
//本次事务发生问题
$pre->execute(['rom','123',]);
//发生异常,中断try中后续语句
$pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
$pdo->commit();
}catch(PDOException $e)
{
$pdo->rollBack();
}
?>