首頁 >後端開發 >php教程 >php PDO的事務處理詳解

php PDO的事務處理詳解

怪我咯
怪我咯原創
2017-07-12 15:56:161338瀏覽

PHP 資料物件 (PDO) 擴充為PHP存取資料庫定義了一個輕量級的一致介面。

PDO 提供了一個資料存取抽象層,這意味著,不管使用哪種資料庫,都可以用相同的函數(方法)來查詢和取得資料。

PDO隨PHP5.1發行,在PHP5.0的PECL擴充中也可以使用,無法運作於先前的PHP版本。

這篇文章主要介紹了PHPPDO的事務處理,結合實例形式分析使用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(&#39;提示信息或执行动作&#39;); // 如出现异常提示信息或执行动作
  $row = $pdo->exec("xxx"); // 执行第二个 SQL
  if (!$row)
    throw new PDOException(&#39;提示信息或执行动作&#39;);
  $pdo->commit();
} catch (PDOException $e) {
  $pdo->rollback(); // 执行失败,事务回滚
  exit($e->getMessage());
}
?>

在交易中的 SQL 語句,如果發生錯誤,那麼所有的 SQL 都不執行。當所有 SQL 有無誤的時候,才提交執行。

以上是php PDO的事務處理詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn