PHP中PDO之事務講解 及 事務四大特性的介紹

2021-08-20 04:06:22 字數 2428 閱讀 4852

說道pdo首先應該想到的問題:

1.什麼是pdo?

pdo類似於mysqli,其不同的是pdo能對不同資料庫的操作,方便使用。

2.為什麼要用pdo?
更換其他資料庫的時候不需要更改**
3.pdo的使用方法:

pdo是php5新加入的乙個重大功能,我們的資料庫伺服器為mysql,所有的程式**的資料庫操作全是一mysql()或者mysqli()函式來操作,當我們的資料庫 需要更換時比如換成,sql、server、postgresql、ms 等,我們不可能去修 改所有的程式**!所以就要用到pdo,pdo很好的幫我們解決了這個問題,使用pdo操作非常方便,只需要修改資料來源格 式,和載入相應的驅動檔案到php.ini即可;

用法步驟:

1:首先你需要開啟一項配置,開啟php.ini中的(php_pdo_mysql.dll);

找到extension_dir='';路徑就是你的擴充套件目錄

# pdo連線資料庫

$dbms = 'mysql'; # 資料庫型別

$host = 'localhost'; # 資料庫主機名

$dbname = 'db_name'; # 使用的資料庫

$user = '****'; # 資料庫連線使用者名稱

$pass = '****'; # 對應的密碼

$dsn = "$dbms:host=$host;dbname=$dbname";

# 初始化pdo得到物件(請注意引數);

$db = new pdo($dsn, $user, $pass, array(pdo::mysql_attr_init_command => "set names 'utf8';")); //初始化乙個pdo物件

$sql = "select money from bank where id = 1";

$result = $db->query($sql);

$result->setfetchmode(pdo::fetch_assoc);

$arr = $result->fetch();

注釋:

1、query()執行查詢語句,返回結果集物件;

2、用迴圈利用fetch()方法逐個的取出記錄,返回的是關聯陣列和索引陣列兩種陣列,和mysql_fetch_array()的返回結果一致

3、fetchall()方法可以一次取出結果集中所有的陣列,以二維陣列的形式返回,但仍然是關聯陣列和索引陣列兩種陣列

新增:

主要思路:

1)連線資料庫、資料庫的使用者名稱、資料庫的密碼

2)生成pdo物件

3)執行新增

在這裡博主總結出幾點:

1. 開啟事務start transaction,可以簡寫為 begin

2. 然後記錄之後需要執行的一組sql

3. 事務提交commit

4. 如果所有的sql都執行成功,則提交,將sql的執行結果持久化到資料表內。

5. 事務回滾rollback

6. 如果存在失敗的sql,則需要回滾,將sql的執行結果,退回到事務開始之時

7. 無論回滾還是提交,都會關閉事務!需要再次開啟,才能使用。

8. 還有一點需要注意,就是事務只針對當前連線。

事務的四大特點:(面試常見題)

原子性(atomicity):

事務是資料庫的邏輯工作單位,它對資料庫的修改要麼全部執行,要麼全部不執行。

一致性(consistemcy):

事務前後,資料庫的狀態都滿足所有的完整性約束。

隔離性(isolation):

併發執行的事務是隔離的,乙個不影響乙個。如果有兩個事務,執行在相同的時間內,執行相同的功能,事務的隔離性將確保每一事務在系統中認為

只有該事務在使用系統。這種屬性有時稱為序列化,為了防止事務操作間的混淆,必須序列化或序列化請求,使得在同一時間僅有乙個請求用於同一資料。

通過設定資料庫的隔離級別,可以達到不同的隔離效果。

永續性(durability):

在事務完成以後,該事務所對資料庫所作的更改便持久的儲存在資料庫之中,並不會被回滾。

注:關於一致性可能有些人不太理解,ok,我再來舉個例子解釋一下

a向b轉賬,假設轉賬之前這兩個使用者的錢加起來總共是2000,那麼a向b轉賬之後,不管這兩個賬戶怎麼轉,a使用者的錢和b使用者的錢加起來的總額還是2000,這個就是事務的一致性。

mysql 事務中查詢 mysql之事務

我們為什麼要使用資料庫的事務呢?使用事務有什麼缺點呢?使用原因 保持資料的匹配和一致性。缺點 併發操作中過度使用事務影響效能,因為事務用到了鎖技術。我是李福春,今天我們來複習一下事務的特性。你可以收穫下圖中的知識點。下面我們發散一下。事務特性 原子性 要麼全部成功要麼全部失敗 一致性 保證事務的前後...

PHP中PDO的事務處理分析

事務處理具有四個特性 原子性 一致性 獨立性 永續性。並不是所有的資料庫都支援事務處理的,pdo 為能夠執行事務處理的資料庫提供事務支援。配置事務處理需注意 1 關閉 pdo 的自動提交 pdo setattribute pdo attr autocommit,false 2 開啟乙個事務需要的方法...

資料庫之事務及索引

學習問題 一次記錄了多個保留點,但是出錯多的話,要怎樣才能在同一事務中同時解決呢。淺嘗輒止哈哈 事務命令 start transaction 開啟事務 rollback 回滾事務,即撤銷指定的sql語句 只能回退insert delete update語句 回滾到上一次commit的位置 commi...