定義:PDO
事務功能,并非PDO
額外多出了一項功能,而是將原來MySQL
所支持的事務操作進行了一定的封裝實現(xiàn)。注意:事務執(zhí)行是否成功是由MySQL
對應的存儲引擎是否支持決定的。
1.事務功能回顧:事務是指改變默認的一次操作一次寫入數據表的機制,而是通過事務日志記錄操作,在最后通過一次性操作寫入到數據表。
-
開啟事務:
start transaction
,寫操作停止直接寫入數據表,而是記錄到事務日志 -
事務操作:具體的寫操作,通常多個步驟多條指令
-
提交事務:即事務操作結束
成功提交:
commit
,所有事務日志內容同步到數據表,并清空當前事務日志失敗回滾:
rollback
,直接清空當前事務日志
2.PDO類中提供一套方案來實現(xiàn)事務操作
<?php $pdo = new PDO('mysql:host=localhost;port=3306;dbname=my_database','root','root'); $pdo->beginTransaction() or die('事務開啟失敗');//開啟事務 $pdo->exec('insert into student values()');//執(zhí)行事務 //終止事務 $pdo->commit(); //成功提交 $pdo->rollback(); //失敗回滾
3.在事務操作中,有一種回滾點
機制,在PDO
中沒有實現(xiàn),如果有必要,可以通過SQL指令
設置來實現(xiàn)
<?php $pdo = new PDO('mysql:host=localhost;port=3306;dbname=my_database','root','root'); $pdo->beginTransaction() or die('事務開啟失敗');//開啟事務 $pdo->exec('insert into student values()');//執(zhí)行事務 //設置回滾點 $pdo->exec('savepoint sp1'); //繼續(xù)執(zhí)行事務... //回滾 $pdo->exec('rollback to sp1'); //終止事務 $pdo->commit(); //成功提交 $pdo->rollback(); //失敗回滾 ?>
推薦:php教程,php視頻教程