PDO::beginTransaction
關閉自動認可模式,並開始交易。
語法
bool PDO::beginTransaction();
傳回值
如果方法呼叫成功,會傳回 true,否則傳回 false。
備註
以 PDO::beginTransaction 開始的交易,會在呼叫 PDO::commit 或 PDO::rollback 時結束。
PDO::beginTransaction 不受 PDO::ATTR_AUTOCOMMIT 的值影響 (且不會影響該值)。
在使用 PDO::rollback 或 PDO::commit 結束先前的 PDO::beginTransaction 之前,您無法呼叫 PDO::beginTransaction。
如果此方法失敗,連線會回到自動認可模式。
Microsoft Drivers for PHP for SQL Server 2.0 版已新增 PDO 支援。
範例
下列範例會使用名為 Test 的資料庫和名為 Table1 的資料表。 它會啟動交易並接著發出命令,以加入兩個資料列,然後再刪除一個資料列。 命令會傳送至資料庫,並以 PDO::commit
明確地結束交易。
<?php
$conn = new PDO( "sqlsrv:server=(local); Database = Test", "", "");
$conn->beginTransaction();
$ret = $conn->exec("insert into Table1(col1, col2) values('a', 'b') ");
$ret = $conn->exec("insert into Table1(col1, col2) values('a', 'c') ");
$ret = $conn->exec("delete from Table1 where col1 = 'a' and col2 = 'b'");
$conn->commit();
// $conn->rollback();
echo $ret;
?>