1. 程式人生 > >MySQLi面向過程實踐---事務處理

MySQLi面向過程實踐---事務處理

target param mysql fin cal 存儲引擎 roo 進行 div

數據庫的事務處理參見另一篇博客,用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面向過程實踐---事務處理