background image

mysql_select_db('test',

$conn

);

mysql_query("set names 'GBK'"); 

//使用 GBK 中文编码;

//开始一个事务

mysql_query("BEGIN"); 

//或者 mysql_query("START TRANSACTION");

$sql

 = "INSERT INTO `user` (`id`, `username`, `sex`) VALUES (NULL, 'test1', '0')";

$sql2

 = "INSERT INTO `user` (`did`, `username`, `sex`) VALUES (NULL, 'test1', '0')";

//这条我

故意写错

$res

 = mysql_query(

$sql

);

$res1

 = mysql_query(

$sql2

);  

if

(

$res

 && 

$res1

){

mysql_query("COMMIT");

echo

 '提交成功。';

}

else

{

mysql_query("ROLLBACK");

echo

 '数据回滚。';

}
mysql_query("END"); 
 

/*方法二*/

代码如下

:

 

/**************** transaction--2 *******************/

mysql_query("SET AUTOCOMMIT=0"); 

//设置 mysql 不自动提交,需自行用 commit 语句提

$sql

 = "INSERT INTO `user` (`id`, `username`, `sex`) VALUES (NULL, 'test1', '0')";

$sql2

 = "INSERT INTO `user` (`did`, `username`, `sex`) VALUES (NULL, 'test1', '0')";

//这条我

故意写错

$res

 = mysql_query(

$sql

);

$res1

 = mysql_query(

$sql2

);  

if

(

$res

 && 

$res1

){

mysql_query("COMMIT");

echo

 '提交成功。';

}

else

{

mysql_query("ROLLBACK");

echo

 '数据回滚。';

}
mysql_query("END"); 

//事务处理完时别忘记 mysql_query("SET AUTOCOMMIT=1");自动提