本文主要給大家簡單講講什么是MySQL的事務(wù)處理,相關(guān)專業(yè)術(shù)語大家可以上網(wǎng)查查或者找一些相關(guān)書籍補(bǔ)充一下,這里就不涉獵了,我們就直奔主題吧,希望什么是MySQL的事務(wù)處理這篇文章可以給大家?guī)硪恍?shí)際幫助。
成都創(chuàng)新互聯(lián)是一家專注網(wǎng)站建設(shè)、網(wǎng)絡(luò)營銷策劃、小程序開發(fā)、電子商務(wù)建設(shè)、網(wǎng)絡(luò)推廣、移動互聯(lián)開發(fā)、研究、服務(wù)為一體的技術(shù)型公司。公司成立10余年以來,已經(jīng)為1000多家成都衛(wèi)生間隔斷各業(yè)的企業(yè)公司提供互聯(lián)網(wǎng)服務(wù)。現(xiàn)在,服務(wù)的1000多家客戶與我們一路同行,見證我們的成長;未來,我們一起分享成功的喜悅。
MySQL的事務(wù)處理
步驟:
1.開啟事務(wù) start transaction
當(dāng)我們開啟一個事務(wù)的時候,我們對sql的操作都發(fā)生在內(nèi)存中,但是沒有真正的反饋到數(shù)據(jù)庫磁盤的文件中!
2.回滾 rollback
回滾,就是恢復(fù)到事務(wù)開啟之前的最原始的狀態(tài)!
注意:回滾操作會自動的關(guān)閉一個事務(wù),如果想再次執(zhí)行事務(wù),需要重新開啟事務(wù)!
3.提交 commit
事務(wù)的基本原理
普通的執(zhí)行,之所以是立即執(zhí)行并生效,因?yàn)槟J(rèn)的,MySQL對sql語句的執(zhí)行是自動提交的!所以,開啟一個事務(wù)的本質(zhì),就是關(guān)閉了以前的自動提交的功能,而是由用戶手動提交(利用commit語句)!【相關(guān)視頻教程推薦:MySQL教程】
總結(jié)事務(wù)的步驟:
1, 開啟事務(wù)
2, 如果執(zhí)行成功,就提交commit
3, 如果有任何一條sql語句執(zhí)行失敗,則回滾rollback!
事務(wù)處理的示例:
事務(wù)處理最典型的就是借還錢,下面以張三向李四還1000元為例:
首先查看數(shù)據(jù)庫中各自的錢數(shù)
下面是處理還錢事務(wù)的代碼:
<?php /** * MySQL實(shí)現(xiàn)事務(wù)操作 */ echo "<meta charset=utf-8>"; // 1 連接數(shù)據(jù)庫 $link = @mysql_connect('localhost','root','') or die('連接數(shù)據(jù)庫失敗'); mysql_select_db('test',$link); mysql_query('set names utf8'); // 2 開啟事務(wù) mysql_query("start transaction"); //設(shè)置一個變量,用來判斷所有sql語句是否成功 $flag = true; // 2.1執(zhí)行事務(wù)中的一組sql語句 // 李四的money+1000 $sql = "update pdo set mone=money+1000 where name='李四'"; $res = mysql_query($sql); if (!$res) { //若sql語句執(zhí)行失敗,把$falg設(shè)置為false $flag = false; } //張三的money-1000 $sql = "update pdo set money=money-1000 where name='張三'"; $res = mysql_query($sql); if (!$res) { //若sql語句執(zhí)行失敗,把$falg設(shè)置為false $flag = false; } // 2.2 判斷事務(wù)是否執(zhí)行成功 if ($flag) { //所有sql語句執(zhí)行成功,把sql語句提交 mysql_query('commit'); echo "還錢成功!"; }else{ // 如其中一條執(zhí)行失敗,則回滾到事務(wù)開啟之前的狀態(tài) mysql_query('rollback'); echo "還錢失??!"; }
結(jié)果:
下面,我們故意把其中一個字段寫錯,看看事務(wù)是否正常處理,數(shù)據(jù)庫中的錢數(shù)是否有變化!
// 李四的money+1000 $sql = "update pdo set mone=money+1000 where name='李四'"; //把moeny字段錯寫成mone
結(jié)果:
結(jié)果是還錢失敗,并且數(shù)據(jù)庫中各自的錢數(shù)沒有變化,說明當(dāng)某一條語句未執(zhí)行成功時,事物不會提交,而會回滾,把數(shù)據(jù)恢復(fù)到開始事務(wù)之前的原始狀態(tài),這也是使用事務(wù)的作用,即只有當(dāng)事務(wù)中所有sql語句全部執(zhí)行成功,事務(wù)才會提交,否則會回滾!
什么是MySQL的事務(wù)處理就先給大家講到這里,對于其它相關(guān)問題大家想要了解的可以持續(xù)關(guān)注我們的行業(yè)資訊。我們的板塊內(nèi)容每天都會捕捉一些行業(yè)新聞及專業(yè)知識分享給大家的。
文章名稱:什么是MySQL的事務(wù)處理
標(biāo)題鏈接:http://jinyejixie.com/article22/iepsjc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制開發(fā)、商城網(wǎng)站、動態(tài)網(wǎng)站、品牌網(wǎng)站建設(shè)、自適應(yīng)網(wǎng)站、ChatGPT
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)