PDO::beginTransaction
关闭自动提交模式,然后开始某个事务。
语法
bool PDO::beginTransaction();
返回值
如果方法调用成功,则为 True;否则为 False。
注解
调用 PDO::commit 或 PDO::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;
?>