国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

PHP操作MySQL事務實例

2020-03-22 17:37:47
字體:
來源:轉載
供稿:網友
本文實例講述了PHP操作html' target='_blank'>MySQL事務的方法,分享給大家供大家參考。具體方法如下:一般來說,事務都應該具備ACID特征。所謂ACID是Atomic(原子性),Consistent(一致性),Isolated(隔離性),Durable(持續性)四個詞的首字母所寫,下面以“銀行轉帳”為例來分別說明一下它們的含義:① 原子性:組成事務處理的語句形成了一個邏輯單元,不能只執行其中的一部分。換句話說,事務是不可分割的最小單元。比如:銀行轉帳過程中,必須同時從一個帳戶減去轉帳金額,并加到另一個帳戶中,只改變一個帳戶是不合理的。
② 一致性:在事務處理執行前后,數據庫是一致的。也就是說,事務應該正確的轉換系統狀態。比如:銀行轉帳過程中,要么轉帳金額從一個帳戶轉入另一個帳戶,要么兩個帳戶都不變,沒有其他的情況。
③ 隔離性:一個事務處理對另一個事務處理沒有影響。就是說任何事務都不可能看到一個處在不完整狀態下的事務。比如說,銀行轉帳過程中,在轉帳事務沒有提交之前,另一個轉帳事務只能處于等待狀態。
④ 持續性:事務處理的效果能夠被永久保存下來。反過來說,事務應當能夠承受所有的失敗,包括服務器、進程、通信以及媒體失敗等等。比如:銀行轉帳過程中,轉帳后帳戶的狀態要能被保存下來。在PHP中,mysqli 已經很好的封裝了mysql事務的相關操作。如下示例:
復制代碼 代碼如下:$sql1 = "update User set ScoreCount = ScoreCount +10 where ID= '123456'";
$sql2 = "update ScoreDetail set FScore = 300 where ID= '123456'";
$sql3 = "insert into ScoreDetail ID,Score) values ('123456',60)";
$mysqli = new mysqli('localhost','root','','DB_Lib2Test');
$mysqli- autocommit(false);//開始事物
$mysqli- query($sql1);
$mysqli- query($sql2);
if(!$mysqli- errno){
$mysqli- commit();
echo 'ok';
}else{
echo 'err';
$mysqli- rollback();
}
在這里,我們再使用 php mysql 系列函數執行事務。
復制代碼 代碼如下:$sql1 = "update User set ScoreCount = ScoreCount +10 where ID= '123456'";
$sql2 = "update ScoreDetail set FScore = 300 where ID= '123456'";
$sql3 = "insert into ScoreDetail ID,Score) values ('123456',60)";
$conn = mysql_connect('localhost','root','');
mysql_select_db('DB_Lib2Test');
mysql_query('start transaction');
//mysql_query('SET autocommit=0');
mysql_query($sql1);
mysql_query($sql2);
if(mysql_errno ()){
mysql_query('rollback');
echo 'err';
}else{
mysql_query('commit');
echo 'ok';
}
// mysql_query('SET autocommit=1');
// mysql_query($sql3);在這里要注意:MyISAM:不支持事務,用于只讀程序提高性能
InnoDB:支持ACID事務、行級鎖、并發
Berkeley DB:支持事務希望本文所述對大家的PHP+MySQL數據庫程序設計有所幫助。PHP教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 阿尔山市| 四子王旗| 迁西县| 安阳市| 南漳县| 大洼县| 达孜县| 涟水县| 营口市| 合作市| 济南市| 叙永县| 龙陵县| 错那县| 那坡县| 普格县| 益阳市| 阳江市| 黄梅县| 英德市| 全南县| 普兰县| 衡南县| 大庆市| 清涧县| 盖州市| 平原县| 五莲县| 荃湾区| 上高县| 区。| 龙海市| 秦安县| 巴彦县| 旺苍县| 古丈县| 黄梅县| 合江县| 祥云县| 肥东县| 商水县|