(PECL ibm_db2 >= 1.0.0)
db2_rollback — 交易回滾
在指定的連線資源上復原進行中的交易,並開始新的交易。PHP 應用程式通常預設為 AUTOCOMMIT 模式,因此 db2_rollback() 通常沒有作用,除非已針對連線資源關閉 AUTOCOMMIT。
範例 #1 復原 DELETE 陳述式
在以下範例中,我們計算表格中的資料列數,關閉資料庫連線上的 AUTOCOMMIT 模式,刪除表格中的所有資料列,並傳回 0
以證明資料列已被移除。然後我們執行 db2_rollback() 並傳回表格中已更新的資料列數,以顯示數字與我們執行 DELETE 陳述式之前的數字相同。表格回到原始狀態表示交易復原成功。
<?php
$conn = db2_connect($database, $user, $password);
if ($conn) {
$stmt = db2_exec($conn, "SELECT count(*) FROM animals");
$res = db2_fetch_array( $stmt );
echo $res[0] . "\n";
// 關閉自動提交
db2_autocommit($conn, DB2_AUTOCOMMIT_OFF);
// 從 ANIMALS 刪除所有列
db2_exec($conn, "DELETE FROM animals");
$stmt = db2_exec($conn, "SELECT count(*) FROM animals");
$res = db2_fetch_array( $stmt );
echo $res[0] . "\n";
// 回滾 DELETE 陳述式
db2_rollback( $conn );
$stmt = db2_exec( $conn, "SELECT count(*) FROM animals" );
$res = db2_fetch_array( $stmt );
echo $res[0] . "\n";
db2_close($conn);
}
?>
上述範例將輸出
7 0 7