PDO::beginTransaction

下载 PHP 驱动程序

关闭自动提交模式,然后开始某个事务。

语法

  
bool PDO::beginTransaction();  

返回值

如果方法调用成功,则为 True;否则为 False。

注解

调用 PDO::commitPDO::rollback 时,将结束使用 PDO::beginTransaction 开始的事务。

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;  
?>  

另请参阅

PDO 类

PDO