TP事务处理

1.框架thinkphp  支持事务代码

public function testrollback(){

$model1 = D('item');

$model2 = D('vote');

$model1->startTrans();

$res1 = $model1->where('id = 5')->delete();

$res2 = $model2->where('id = 2')->delete();

dump($res1);

dump($res2);

if($res1 && $res2){

$model1->commit();  //只有$res1 和  $res2  都执行成功是才真正执行上面的数据库操作

dump("commit");

}else{

$model1->rollback();  //  条件不满足,回滚

dump("rollback");

}

dump("over");

exit;

}


只支持数据库和数据表都是 innoDB  的情况

public function rollbackoriginal1(){

$conn = mysql_connect('127.0.0.1','summerzi','summerzi') or die('DB connection failed!');

mysql_select_db('summer',$conn);

mysql_query('set names "GBK"');

mysql_query('BEGIN');

$sql1 = "INSERT INTO `summer_userdata`(`uid`,`type`,`target_id`) VALUES(41,1,233);";

$sql2 = "INSERT INTO `summer_userdata`(`uid`,`type`,`target_id`) VALUES(fdfd,2,235);";

$res1 = mysql_query($sql1);

$res2  = mysql_query($sql2);

dump($sql1);

dump($sql2);

dump($res1);

dump($res2);

if($res1 && $res2){

mysql_query('COMMIT');

dump('commit success!');

}else{

mysql_query('ROLLBACK');

dump('commit failed, rollback!');

}

mysql_query('END');

}



对于不支持事务的MyISAM引擎数据库可以使用表锁定的方法

public function rollbackoriginal2(){

$conn = mysql_connect('127.0.0.1','summerzi','summerzi') or die('DB connection failed!');

mysql_select_db('summer',$conn);

mysql_query('set names "GBK"');

mysql_query('SET AUTOCOMMIT=0');////设置mysql不自动提交,需自行用commit语句提交

$sql1 = "INSERT INTO `summer_userdata`(`uid`,`type`,`target_id`) VALUES(41,1,233);";

$sql2 = "INSERT INTO `summer_userdata`(`uid`,`type`,`target_id`) VALUES(44,2,235);";

//mysql_query("LOCK TABLES `hmbl_userdata` WRITE");//锁定表

$res1 = mysql_query($sql1);

$res2  = mysql_query($sql2);

dump($sql1);

dump($sql2);

dump($res1);

dump($res2);

//mysql_query("UNLOCK TABLES");//解除锁定

if($res1 && $res2){

mysql_query('COMMIT');

dump('commit success!');

}else{

mysql_query('ROLLBACK');

dump('commit failed, rollback!');

}

mysql_query("SET AUTOCOMMIT=1");

mysql_query('END');

}


原文地址:https://www.cnblogs.com/summerzi/archive/2015/04/05/4393790.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 来源转载自:http://www.cnblogs.com/ymy124/p/3718439.html MySQL的...
    Mrwangs阅读 1,971评论 0 8
  • 【MySQL】Linux下MySQL 5.5、5.6和5.7的RPM、二进制和源码安装 1.1BLOG文档结构图 ...
    小麦苗DB宝阅读 10,648评论 0 31
  • 什么是数据库? 数据库是存储数据的集合的单独的应用程序。每个数据库具有一个或多个不同的API,用于创建,访问,管理...
    chen_000阅读 4,068评论 0 19
  • sqlmap用户手册 说明:本文为转载,对原文中一些明显的拼写错误进行修正,并标注对自己有用的信息。 ======...
    wind_飘阅读 2,129评论 0 5
  • “阿妈,这件事你怎么看?” 令熊拍拍千佑的脸,“不用担心,什么时候我都支持你跟Kate 一起。韦磊一直野心勃勃,我...
    籽盐阅读 255评论 0 0