首頁  >  文章  >  後端開發  >  筆記004 PHP POD學習筆記03

筆記004 PHP POD學習筆記03

黄舟
黄舟原創
2016-12-26 09:31:551068瀏覽

1. 連線的建立

$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
?>

2. 連線的錯誤處理

?>


2. 連線的錯誤處理





try {
   $dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
  bhforeach($$ELECT ') as $row) {
       print_r($row);
   }
   $dbh = null;
} catch (PDOException $e) {
  get: "Error o. />";

   die();

}

?>


關閉連接





// 在此使用連接

// 現在運行完成,在此關閉連接$dbh = null; ?>


事務

當第一次開啟連線時,PDO 需要在所謂的「自動提交」模式下運作。自動提交模式意味著,如果資料庫支持,執行的每個查詢都有它自己的隱式事務,如果資料庫不支援事務,則沒有。如果需要一個事務,則必須使用 PDO::beginTransaction() 方法來啟動。如果底層驅動不支援事務,則拋出一個 PDOException 異常(不管錯誤處理設定是怎樣的,這都是一個嚴重的錯誤狀態)。一旦開始了事務,可用 PDO::commit() 或 PDO::rollBack()來完成,這取決於事務中的程式碼是否運行成功。

當腳本結束或連接即將關閉時,如果尚有一個未完成的事務,那麼 PDO 將自動回滾該事務。這種安全措施有助於在腳本意外終止時避免不一致的情況——如果沒有明確地提交事務,那麼假設是某個地方出錯了,所以執行回滾來確保資料安全。


在下面範例中,假設為新員工建立一組條目,並分配一個為23的ID。除了登記此人的基本資料之外,還需要記錄他的薪水。兩個更新分別完成起來很簡單,但透過封閉在 PDO::beginTransaction() 和PDO::commit() 呼叫中,可以保證在變更完成之前,其他人無法看到這些變更。如果發生了錯誤,catch 區塊回滾自交易啟動以來發生的所有更改,並輸出一條錯誤訊息。




try {
$dbh = new PDO('odbc:SAMPLE', 'db2inst1', 'ibmdb2',
 array(PDO::ATTR_PERSISTENT::ATTR_PERSISTENT; ;
} catch (Exception $e) {
die("Unable to connect: " . $e->getMessage());

}


try {

$dbh->setAttribute(PDO::ATTRDOER:PDO::ATTRDOER:PDOPDOPDO:PDO: :ERRMODE_EXCEPTION);

$dbh->beginTransaction(); $dbh->exec("insert into staff (id, first, last) values (23, 'Joe', 'Bloggs')"); $dbh-> exec("insert into salarychange (id, amount, changedate) values (23, 50000, NOW())"); $dbh->commit();

} catch (Exception $e) { $dbh->rollBack(
} catch (Exception $e) { $dbh->rollBack(

} catch (Exception $e) { $dbh->rollBack( ); echo "Failed: " . $e->getMessage(); } ?>


 以上就是筆記004 PHP POD學習筆記03的內容,更多相關內容請關注PHP中文網(www.php.cn)!

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