try {
$dsn = 'mysql:host=localhost; dbname=user; charset=utf8';
$pdo = new PDO($dsn, 'root');
$pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
die('连接失败'.$e->getMessage());
}
try {
$pdo->beginTransaction();//开启事务
$sql = 'insert into test(name,password,height) values("赵云", "123", 170)';
$res = $pdo->exec($sql);
if ($res < 0) {
echo '插入成功<br/>';
} else {
throw new PDOException('插入失败<br/>');
}
$sql = 'update test set height=175 where id=21';
$res = $pdo->exec($sql);
if ($res > 0) {
echo '删除成功<br/>';
} else {
echo '删除失败<br/>';
$pdo->rollback();//执行失败,事务回滚到初始状态
exit;
}
$pdo->commit(); //提交事务
} catch (Exception $e) {
$pdo->rollback();
echo $e->getMessage();
}
用于同时执行多项事务,如果执行的事务有一项失败,则返回初始状态,只有全部成功,才会执行成功。