mysql 事物成功了 提交数据 错误了 回滚数据 今天给大家两种方法 让大家理解一下 一种是mysql一种mysqli

$handler=mysql_connect("localhost","root","dgj99349");
mysql_select_db("xiaowei");
mysql_query("SET AUTOCOMMIT=0");//设置为不自动提交,因为MYSQL默认立即执行
mysql_query("BEGIN");//开始事务定义
if(!mysql_query("insert into trans (id) values('2')"))
{
mysql_query("ROOLBACK");//判断当执行失败时回滚
}
if(!mysql_query("insert into trans (id) values('4')"))
{
mysql_query("ROOLBACK");//判断执行失败回滚
}
mysql_query("COMMIT");//执行事务
mysql_close($handler);
</pre>
下边是mysqli事物处理 我们按照一个实验完成
<pre lang="php" line="1">
$mysqli=new mysqli("localhost", "root", "123456", "xiaowei");

	//事务处理
	$mysqli->autocommit(0);

	$error=true;

	$price=50;

	$sql="update zh set ye=ye-{$price} where name='zhangsan'";
	
	$result=$mysqli->query($sql);

	if(!$result){
		$error=false;
		echo "从张三转出失败<br>";
	}else{
		if($mysqli->affected_rows==0){
			$error=false;
			echo "张三的钱没有变化";	
		}else{
			echo "从张三账号中转出成功!<br>";
		}
	}

	$sql="update zh set ye=ye+{$price} where name='lisi1'";

	$result=$mysqli->query($sql);

	if(!$result){
		$error=false;
		echo "从李四转入失败<br>";
	}else{
		if($mysqli->affected_rows==0){
			$error=false;
			echo "李四的钱没有变化";	
		}else{
			echo "向李四账号中转入成功!<br>";
		}
	}

	if($error){
		echo "转账成功!";
		$mysqli->commit();
	}else{
		echo "转账失败!";
		$mysqli->rollback();
	}

	$mysqli->autocommit(1);
	$mysqli->close();
欢迎转载,转载请注明来自微度网络http://yun.widuu.com

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部