程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> 關於MYSQL數據庫 >> 一些關於adodb的知識

一些關於adodb的知識

編輯:關於MYSQL數據庫

adodb的一些有用的知識。

處理事務

處理事務是許多應用程序的一個重要的特征。(對於初學者來說,處理事務是你可以提交一打查詢操作的過程,而這些查詢是都成功了,還是有部分失敗了,都需要考慮進去。
經典范例是銀行處理。錢從你的帳戶轉出,然後轉入到其他某個人的帳戶中。只要其中任意一項失敗,那麼,這整個過程都必須被認定為失敗。不然,錢被劃出,而沒有進對方的帳戶;或者,錢沒有劃出,對方帳戶無端多了一筆小費。)

處理事務可以在代碼級上進行機警地管理控制。 常數錯誤檢查被用來判斷是否要COMMIT(事務的所有各項都正確,執行正確,結束事務)還是ROLLBACK(事務中有錯誤,所有改動需要恢復原來狀況)。ADOdb 有一些能使處理操作正確進行的有用的函數。下例在某個職員的結余加10,並在另一個上減10,整個過程有兩個查詢,作為一個完整的事務。

$sql1 = "UPDATE employees SET balance=balance-10 WHERE id=15";
$sql2 = "UPDATE employees SET balance=balance+10 WHERE id=22";
$db->StartTrans();
$db->Execute($sql);
$db->Execute($sql2);
$db->CompleteTrans();

當你浏覽老的代碼時,可能會看到一個比較老的方法來實現這一切。使用 BeginTrans()、CommitTrans()和RollbackTrans()函數時,需要你自己來處理錯誤。StartTrans()和 CompleteTrans()將會自動地處理錯誤,並適當地進行COMMIT或ROLLBACK。當需要的時候,你可以通過FailTrans()來強制執行ROLLBACK。

當然你可能需要知道處理是失敗了還是成功了。ADOdb 提供了 HasFailedTrans() 來實現這個功能。 如果出錯(或者,你可以將這種情況稱作FailTrans()),返回TRUE;如果成功,返回FALSE。

$sql1 = "UPDATE employees SET balance=balance-10 WHERE id=15";
$sql2 = "UPDATE employees SET balance=balance+10 WHERE id=22";
$db->StartTrans();
$db->Execute($sql);
$db->Execute($sql2);
$db->CompleteTrans();
if ($db->HasFailedTrans()) {
// Something went wrong
}


值得注意的是,你的數據庫需要支持這些事務函數。 (大多數的數據庫是支持的,不過,MySQL InnoDB表支持,可 MySQL MyISAM 表不支持。)

我希望我所做的一切能讓你對數據庫庫函數能有極大的興趣。還有大量有趣的函數可以用來從數據庫表中自動生成Html,並且同一結果有不同的方法來實現。你可以在此找到完整的手冊。
祝你好運!

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved