码迷,mamicode.com
首页 > 数据库 > 详细

mysql事物实现大致逻辑测试

时间:2014-09-17 18:52:13      阅读:246      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   io   os   ar   art   sp   

mysql事物实现语法

1)begin sql语句 rollback 或者commit

START TRANSACTION sql语句 rollback 或者commit

2)修改AUTOCOMMIT 自动提交是否开启的 #本文未涉及

个人对此逻辑理解

开始事物

提交每一个sql,并记录提交成功与否

对所有sql提交结果,进行判断

    都执行成功,则commit#提交事务,这时所有操作才会进行

    否则(有任何一个执行失败),则rollback。进行事务回滚


以下附上测试表结构和php代码

表结构

CREATE TABLE `test01` (

  `01` varchar(500) DEFAULT NULL,

  `02` varchar(500) DEFAULT NULL

) ENGINE=InnoDB DEFAULT CHARSET=utf8

php代码

<?

$lnk = mysql_connect("localhost", "root", "");   


mysql_select_db("test");   


mysql_query("BEGIN");

//mysql_query("START TRANSACTION");

$query = mysql_query("update test01 set `01` = 12");   

$q1 = mysql_error();

if ($q1) {

echo "$q1"."\n";

}


$query = mysql_query("update test01 set `02` = 3");   

$q2 = mysql_error();   

if ($q2) {

echo "$q2"."\n";

}


if (!$q1 && !$q2) {   

     mysql_query("COMMIT");  //全部成功,提交执行结果 

echo "commit"."\n";

} else {   

     mysql_query("ROLLBACK"); //有任何错误发生,回滚并取消执行结果   

echo "rollback"."\n";

}   

//var_dump($q1, $q2);

mysql_close($lnk);

?>

修改sql语句,让某条执行sql出现错误,测试结果


本文参考:http://www.111cn.net/database/mysql/53781.htm

http://www.cnblogs.com/in-loading/archive/2012/02/21/2361702.html

非常感谢作者!

mysql事物实现大致逻辑测试

标签:style   blog   http   color   io   os   ar   art   sp   

原文地址:http://heishi317.blog.51cto.com/4301036/1554433

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!