PDO::beginTransaction
Отключает режим автофиксации и начинает транзакцию.
Синтаксис
bool PDO::beginTransaction();
Возвращаемое значение
Значение true, если вызов метода выполнен успешно, в противном случае — значение false.
Замечания
Транзакция, начавшаяся с PDO::beginTransaction, заканчивается, когда вызывается PDO::commit или PDO::rollback.
PDO::beginTransaction не подвержен влиянию со стороны значения PDO::ATTR_AUTOCOMMIT (и не влияет на него).
Вы не можете вызвать PDO::beginTransaction до завершения предыдущего PDO::beginTransaction с PDO::rollback или PDO::commit.
Если этот метод завершается ошибкой, подключение возвращается в режим автофиксации.
Добавлена поддержка PDO версии 2.0 драйверов Майкрософт для PHP для SQL Server.
Пример
Следующий пример использует базу данных с именем 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;
?>