TP事務(wù)處理

1.框架thinkphp ?支持事務(wù)代碼

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? 都執(zhí)行成功是才真正執(zhí)行上面的數(shù)據(jù)庫操作

dump("commit");

}else{

$model1->rollback();? //? 條件不滿足,回滾

dump("rollback");

}

dump("over");

exit;

}


只支持數(shù)據(jù)庫和數(shù)據(jù)表都是 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');

}



對于不支持事務(wù)的MyISAM引擎數(shù)據(jù)庫可以使用表鎖定的方法

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');////設(shè)置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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 來源轉(zhuǎn)載自:http://www.cnblogs.com/ymy124/p/3718439.html MySQL的...
    Mrwangs閱讀 2,015評論 0 8
  • 【MySQL】Linux下MySQL 5.5、5.6和5.7的RPM、二進制和源碼安裝 1.1BLOG文檔結(jié)構(gòu)圖 ...
    小麥苗DB寶閱讀 10,897評論 0 31
  • 什么是數(shù)據(jù)庫? 數(shù)據(jù)庫是存儲數(shù)據(jù)的集合的單獨的應(yīng)用程序。每個數(shù)據(jù)庫具有一個或多個不同的API,用于創(chuàng)建,訪問,管理...
    chen_000閱讀 4,144評論 0 19
  • sqlmap用戶手冊 說明:本文為轉(zhuǎn)載,對原文中一些明顯的拼寫錯誤進行修正,并標注對自己有用的信息。 ======...
    wind_飄閱讀 2,207評論 0 5
  • “阿媽,這件事你怎么看?” 令熊拍拍千佑的臉,“不用擔心,什么時候我都支持你跟Kate 一起。韋磊一直野心勃勃,我...
    籽鹽閱讀 281評論 0 0

友情鏈接更多精彩內(nèi)容