Поделиться через


PDO::beginTransaction

Скачать драйвер PHP

Отключает режим автофиксации и начинает транзакцию.

Синтаксис

  
bool PDO::beginTransaction();  

Возвращаемое значение

Значение true, если вызов метода выполнен успешно, в противном случае — значение false.

Remarks

Транзакция, начавшаяся с PDO::beginTransaction, заканчивается, когда вызывается PDO::commit или PDO::rollback.

PDO::beginTransaction не подвержен влиянию со стороны значения PDO::ATTR_AUTOCOMMIT (и не влияет на него).

Вы не можете вызвать PDO::beginTransaction до завершения предыдущего PDO::beginTransaction с PDO::rollback или PDO::commit.

Если этот метод завершается ошибкой, подключение возвращается в режим автофиксации.

Поддержка PDO была добавлена в версии 2.0 Драйверы Microsoft SQL Server для PHP.

Пример

Следующий пример использует базу данных с именем 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