MySQLi面向过程实践---事务处理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQLi面向过程实践---事务处理相关的知识,希望对你有一定的参考价值。

数据库的事务处理参见另一篇博客,用PDO实现,和mysqli操作几乎没有差别,地址是http://www.cnblogs.com/-beyond/p/7551177.html

注意要进行事务处理的表格的存储引擎选择Innodb,而非MyISAM

事务处理需要用到以下函数

bool mysqli_begin_transaction ( mysqli $link [, int $flags [, string $name ]] )

bool mysqli_commit ( mysqli $link )

bool mysqli_rollback ( mysqli $link )

具体事例如下:

<?php 
	$conn=mysqli_connect("localhost","root","root","test");
	
	//开启事务
	mysqli_begin_transaction($conn);

	try{
		mysqli_query($conn,"delete from aaa where uid = 99");
		//提交操作
		mysqli_commit($conn);
		echo "finished\\n";
	}catch (Exception $e){
		echo "failed\\n";
		echo $e->getMessage();
		//如果出现错误,则撤销开启事务以后的所有操作
		mysqli_rollback($conn);
	}

	//提交
	mysqli_commit($conn);
	//关闭数据库
	mysqli_close($conn);
 ?>

  



以上是关于MySQLi面向过程实践---事务处理的主要内容,如果未能解决你的问题,请参考以下文章

MySQLi面向过程实践---预处理

MySQLi面向对象实践---预处理

PHPmysqli扩展整理,包括面向过程和面向对象的比较事务控制批量执行预处理

响应式架构在系统集成过程中分布式事务处理实践

PHP中的MySQLi扩展学习mysqli的事务与预处理语句

PHP中的MySQLi扩展学习mysqli的事务与预处理语句