最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

php的PDO事務(wù)處理機制實例分析

 更新時間:2017年02月16日 08:51:59   作者:水晶依戀  
這篇文章主要介紹了php的PDO事務(wù)處理機制,結(jié)合實例形式分析了事務(wù)的原理、功能及PDO處理事務(wù)的具體操作步驟與實現(xiàn)技巧,需要的朋友可以參考下

本文實例講述了php的PDO事務(wù)處理機制。分享給大家供大家參考,具體如下:

事務(wù) (Transaction) 是操作數(shù)據(jù)庫中很重要的一個功能, 它可以讓你預(yù)定一條, 或者一系列 SQL 語句, 然后一起執(zhí)行,并且在執(zhí)行的過程中, 如果其中的某條執(zhí)行失敗, 可以回滾所有已更改的操作. 如果執(zhí)行成功, 那么這一系列操作都會永久有效. 事務(wù)很好的解決了在操作數(shù)據(jù)庫的時候不同步的問題. 同時, 通過事務(wù)去執(zhí)行大數(shù)據(jù)量的時候, 執(zhí)行效率可以提高很多很多.

在PDO中同樣可以實現(xiàn)事物處理的功能

1. 開啟事物:beginTransaction()方法

beginTransaction()方法將關(guān)閉自動提交(autocommit)模式,直到事物被提交或者回滾以后才恢復(fù)

2. 提交事物:commit()方法

commit()方法完成事物的提交操作,成功則返回true,否則返回false。

3. 事物回滾:rollBack()方法

rollBack()方法執(zhí)行事物的回滾操作。

例如:

$dbms='mysql';//數(shù)據(jù)庫類型
$dbName='admin';//使用的數(shù)據(jù)庫
$user='root';//數(shù)據(jù)庫連接用戶名
$pwd='password';//數(shù)據(jù)庫連接密碼
$host='localhost';//數(shù)據(jù)庫主機名
$dsn="$dbms:host=$host;port=3306;dbname=$dbName";
try {
 $pdo = new PDO($dsn, $user, $pwd);//初始化一個PDO對象,就是創(chuàng)建了數(shù)據(jù)庫連接對象$pdo
 $pdo->beginTransaction();//開啟事物
 $query = "insert into user (username,password) values('admin','123456')";//需要執(zhí)行的sql語句
 $res = $pdo->prepare($query);
 if ($res->execute()) {
  echo "數(shù)據(jù)添加成功";
 }else{
  echo "數(shù)據(jù)添加失敗";
 }
 $pdo->commit();//執(zhí)行事物的提交操作
}catch(PDOException $e){
 die("Error!: ".$e->getMessage().'<br>');
 $pdo->rollBack();//執(zhí)行事物的回滾操作
}

補充:

數(shù)據(jù)庫事務(wù)(Database Transaction) ,是指作為單個邏輯工作單元執(zhí)行的一系列操作,要么完全地執(zhí)行,要么完全地不執(zhí)行。

事務(wù)處理可以確保除非事務(wù)性單元內(nèi)的所有操作都成功完成,否則不會永久更新面向數(shù)據(jù)的資源。通過將一組相關(guān)操作組合為一個要么全部成功要么全部失敗的單 元,可以簡化錯誤恢復(fù)并使應(yīng)用程序更加可靠。一個邏輯工作單元要成為事務(wù),必須滿足所謂的ACID(原子性、一致性、隔離性和持久性)屬性。

事務(wù)是數(shù)據(jù)庫運行中的一個邏輯工作單位,由DBMS中的事務(wù)管理子系統(tǒng)負責(zé)事務(wù)的處理。

相關(guān)屬性:

① 原子性(Atomic)(Atomicity)

事務(wù)必須是原子工作單元;對于其數(shù)據(jù)修改,要么全都執(zhí)行,要么全都不執(zhí)行。通常,與某個事務(wù)關(guān)聯(lián)的操作具有共同的目標(biāo),并且是相互依賴的。如果系統(tǒng)只執(zhí)行這些操作的一個子集,則可能會破壞事務(wù)的總體目標(biāo)。原子性消除了系統(tǒng)處理操作子集的可能性。

② 一致性(Consistent)(Consistency)

事務(wù)在完成時,必須使所有的數(shù)據(jù)都保持一致狀態(tài)。在相關(guān)數(shù)據(jù)庫中,所有規(guī)則都必須應(yīng)用于事務(wù)的修改,以保持所有數(shù)據(jù)的完整性。事務(wù)結(jié)束時,所有的內(nèi)部數(shù) 據(jù)結(jié)構(gòu)(如 B 樹索引或雙向鏈表)都必須是正確的。某些維護一致性的責(zé)任由應(yīng)用程序開發(fā)人員承擔(dān),他們必須確保應(yīng)用程序已強制所有已知的完整性約束。例如,當(dāng)開發(fā)用于轉(zhuǎn) 帳的應(yīng)用程序時,應(yīng)避免在轉(zhuǎn)帳過程中任意移動小數(shù)點。

③ 隔離性(Insulation)(Isolation)

由并發(fā)事務(wù)所作的修 改必須與任何其它并發(fā)事務(wù)所作的修改隔離。事務(wù)查看數(shù)據(jù)時數(shù)據(jù)所處的狀態(tài),要么是另一并發(fā)事務(wù)修改它之前的狀態(tài),要么是另一事務(wù)修改它之后的狀態(tài),事務(wù)不 會查看中間狀態(tài)的數(shù)據(jù)。這稱為隔離性,因為它能夠重新裝載起始數(shù)據(jù),并且重播一系列事務(wù),以使數(shù)據(jù)結(jié)束時的狀態(tài)與原始事務(wù)執(zhí)行的狀態(tài)相同。當(dāng)事務(wù)可序列化 時將獲得最高的隔離級別。在此級別上,從一組可并行執(zhí)行的事務(wù)獲得的結(jié)果與通過連續(xù)運行每個事務(wù)所獲得的結(jié)果相同。由于高度隔離會限制可并行執(zhí)行的事務(wù) 數(shù),所以一些應(yīng)用程序降低隔離級別以換取更大的吞吐量。

④ 持久性(Duration)(Durability)

事務(wù)完成之后,它對于系統(tǒng)的影響是永久性的。該修改即使出現(xiàn)致命的系統(tǒng)故障也將一直保持。

更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《PHP基于pdo操作數(shù)據(jù)庫技巧總結(jié)》、《php+Oracle數(shù)據(jù)庫程序設(shè)計技巧總結(jié)》、《PHP+MongoDB數(shù)據(jù)庫操作技巧大全》、《php面向?qū)ο蟪绦蛟O(shè)計入門教程》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總

希望本文所述對大家PHP程序設(shè)計有所幫助。

相關(guān)文章

  • PHP如何實現(xiàn)防止重復(fù)提交

    PHP如何實現(xiàn)防止重復(fù)提交

    防抖(Debounce)是一種防止重復(fù)提交的策略,它通過延遲一定時間來合并連續(xù)的操作,以確保只執(zhí)行一次,本文為大家整理了幾種防抖的實現(xiàn)方法,希望對大家有所幫助
    2023-09-09
  • Ajax+PHP實現(xiàn)的模擬進度條功能示例

    Ajax+PHP實現(xiàn)的模擬進度條功能示例

    這篇文章主要介紹了Ajax+PHP實現(xiàn)的模擬進度條功能,結(jié)合實例形式分析了php結(jié)合ajax動態(tài)讀取文件實現(xiàn)進度條功能的相關(guān)操作技巧,需要的朋友可以參考下
    2019-02-02
  • 使用PHP生成二維碼的方法匯總

    使用PHP生成二維碼的方法匯總

    PHP生成二維碼最常用的有兩種,1.使用google的api生成,2.使用PHP QR Code生成,兩種方法生成的二維碼都是很清淅的,效果不錯。下面我們就來詳細看看吧。
    2015-07-07
  • PHP實現(xiàn)的mongoDB數(shù)據(jù)庫操作類完整實例

    PHP實現(xiàn)的mongoDB數(shù)據(jù)庫操作類完整實例

    這篇文章主要介紹了PHP實現(xiàn)的mongoDB數(shù)據(jù)庫操作類,結(jié)合完整實例形式詳細分析了php基于單例模式針對mongoDB數(shù)據(jù)庫連接、增刪改查、統(tǒng)計等操作相關(guān)實現(xiàn)技巧,需要的朋友可以參考下
    2018-04-04
  • PHP中使用cURL實現(xiàn)Get和Post請求的方法

    PHP中使用cURL實現(xiàn)Get和Post請求的方法

    PHP中使用cURL實現(xiàn)Get和Post請求的方法,需要的朋友可以參考一下
    2013-03-03
  • PHP JSON 數(shù)據(jù)解析代碼

    PHP JSON 數(shù)據(jù)解析代碼

    PHP解析JSON 數(shù)據(jù)代碼,與大多數(shù)流行的 Web 服務(wù)如 twitter 、人人網(wǎng)通過開放 API 來提供數(shù)據(jù)一樣,它總是能夠知道如何解析 API 數(shù)據(jù)的各種傳送格式,包括 JSON,XML 等等。
    2010-05-05
  • php設(shè)計模式之單例、多例設(shè)計模式的應(yīng)用分析

    php設(shè)計模式之單例、多例設(shè)計模式的應(yīng)用分析

    本篇文章是對php設(shè)計模式中的單例與多例設(shè)計模式的應(yīng)用進行了詳細的分析介紹,需要的朋友參考下
    2013-06-06
  • php實現(xiàn)的RSS生成類實例

    php實現(xiàn)的RSS生成類實例

    這篇文章主要介紹了php實現(xiàn)的RSS生成類,實例分析了RSS生成類的原理、定義與使用技巧,非常具有實用價值,需要的朋友可以參考下
    2015-04-04
  • php使用PhpSpreadsheet導(dǎo)出Excel表格的實例詳解

    php使用PhpSpreadsheet導(dǎo)出Excel表格的實例詳解

    這篇文章將給大家介紹php使用PhpSpreadsheet導(dǎo)出Excel表格的實例,文中通過代碼示例給大家講解的非常詳細,對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-01-01
  • PHP完全二叉樹定義與實現(xiàn)方法示例

    PHP完全二叉樹定義與實現(xiàn)方法示例

    這篇文章主要介紹了PHP完全二叉樹定義與實現(xiàn)方法,簡單描述了完全二叉樹的概念并結(jié)合實例形式給出了完全二叉樹的定義、節(jié)點查找、添加、設(shè)置、打印等相關(guān)操作技巧,需要的朋友可以參考下
    2017-10-10

最新評論

额敏县| 蓬安县| 张家港市| 南丹县| 义马市| 华宁县| 防城港市| 渑池县| 塘沽区| 连山| 皮山县| 竹溪县| 乌苏市| 黑龙江省| 玛多县| 金门县| 石泉县| 凌源市| 黄石市| 黄龙县| 晋城| 伊川县| 师宗县| 神池县| 平阴县| 五华县| 咸阳市| 汉寿县| 南乐县| 牙克石市| 温宿县| 怀安县| 镇坪县| 开远市| 原平市| 龙井市| 买车| 上高县| 阿克陶县| 汝城县| 察哈|