中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

PHP商城數據庫安全事務處理方法

發布時間:2020-06-29 12:39:30 來源:網絡 閱讀:379 作者:德尚網絡 欄目:MySQL數據庫

現在是一個電商時代,做電商的首先得有一個商城,所以商城的安全也是不容忽視的,一個數據安全的商城離不開數據庫的事務處理,商城在資金、商品、下單、結賬等重要步驟加上事務控制這是不一定不可少的,像市場上的一些開源商城我都有去研究。
程序員獨立開發商城也要注意這方面的事情,現在我這邊就介紹下PHP操作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);

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

台中县| 乐至县| 抚宁县| 准格尔旗| 四川省| 兴安县| 阳原县| 塘沽区| 红安县| 富锦市| 三原县| 武义县| 辽阳市| 白银市| 黄石市| 洪江市| 夹江县| 丹巴县| 都江堰市| 麻栗坡县| 玉树县| 溆浦县| 诏安县| 德惠市| 马公市| 麟游县| 原阳县| 香港| 平昌县| 长丰县| 密云县| 花莲市| 桂阳县| 永年县| 东兴市| 清河县| 东阿县| 曲水县| 页游| 宜丰县| 十堰市|