PHP 資料物件 (PDO) 擴充為PHP存取資料庫定義了一個輕量級的一致介面。
PDO 提供了一個資料存取抽象層,這意味著,不管使用哪種資料庫,都可以用相同的函數(方法)來查詢和取得資料。
PDO隨PHP5.1發行,在PHP5.0的PECL擴充中也可以使用,無法運作於先前的PHP版本。
這篇文章主要介紹了PHP中PDO的事務處理,結合實例形式分析使用PDO進行事務處理的相關技巧,需要的朋友可以參考下
本文實例分析了PHP中PDO的事務處理。分享給大家供大家參考,具體如下:
事務處理有四個特性:原子性、一致性、獨立性、持久性。
並不是所有的資料庫都支援事務處理的,PDO 為能夠執行事務處理的資料庫提供事務支援。
設定事務處理需注意:
1、關閉PDO 的自動提交;
$pdo->setAttribute(PDO::ATTR_AUTOCOMMIT, false);
2、開啟一個交易所需的方法;
$pdo->beginTransaction(); // 开启一个事务 $pdo->commit(); // 提交事务 $pdo->rollback(); // 回滚事务
3、一般事務處理是運行在try...catch...語句中,當事務失敗時執行catch 程式碼區段。
<?php try { $pdo->beginTransaction(); // 开启一个事务 $row = null; $row = $pdo->exec("xxx"); // 执行第一个 SQL if (!$row) throw new PDOException('提示信息或执行动作'); // 如出现异常提示信息或执行动作 $row = $pdo->exec("xxx"); // 执行第二个 SQL if (!$row) throw new PDOException('提示信息或执行动作'); $pdo->commit(); } catch (PDOException $e) { $pdo->rollback(); // 执行失败,事务回滚 exit($e->getMessage()); } ?>
在交易中的 SQL 語句,如果發生錯誤,那麼所有的 SQL 都不執行。當所有 SQL 有無誤的時候,才提交執行。
以上是php PDO的事務處理詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!