php 事务transaction处理数据库操作

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();
		 

	}


?>
发布了252 篇原创文章 · 获赞 3 · 访问量 3276

猜你喜欢

转载自blog.csdn.net/weixin_43294560/article/details/103646312
今日推荐