(PHP 4, PHP 5, PHP 7, PHP 8)
odbc_autocommit — Переключает поведение автоматической фиксации
Функция переключает поведение автоматической фиксации.
По умолчанию для подключения включена автоматическая фиксация. Отключение автоматической фиксации эквивалентно запуску транзакции.
odbcenable
Со значением true параметр enable включает автоматическую фиксацию,
со значением false — отключает.
Функция возвращает статус автофиксации в соединении odbc,
если в этот параметр передали значение null .
Функция возвращает статус автоматической фиксации для подключения, которое передали
в параметр odbc, если в параметр enable передали значение null .
Функция возвращает ненулевое значение, если автоматическая фиксация включена, 0, если выключена,
и false , если возникла ошибка.
Функция возвращает true , если выполнилась успешно, и false , если возникла ошибка,
если значение аргумента enable отличается от значения null .
| Версия | Описание |
|---|---|
| 8.4.0 |
Параметр odbc теперь принимает объект соединения Odbc\Connection ;
раньше принимался тип resource .
|
| 8.3.0 |
Параметр enable теперь принимает значение null .
|
If a transaction is started (autocommit disabled) while there is an active result id on the connection, odbc_autocommit will post a warning (Cannot set autocommit). Use odbc_free_result to clear the result id's or start the transaction before you execute the SQL.If you are using persistent connections (odbc_pconnect rather than odbc_connect) the next script that reuses the connection will inherit your changes to autocommit.Hi (i'm belgian then sorry for my english).
I think you can do more simple to check the errors :
$conn = odbc_connect($odbc,$user,$password)
or die($error);
odbc_autocommit($conn, FALSE);
odbc_exec($conn, $query1);
odbc_exec($conn, $query2);
if (!odbc_error())
odbc_commit($conn);
else
odbc_rollback($conn);
odbc_close($conn);
I'm not sure it's better to use odbc_error() than
odbc_error($conn). It seems to be the same result.It seems that example made by andrea dot galli at acotel dot com works exactly the contrary.
It sets autocommit OFF and NOT ON like it's written inside note!When used in a odbc_fetch loop your selected resultset is lost and loop ends.Example: set autocommit on
<?php
$Link_ID = odbc_connect("DSN", "user", "pass");
$Return = odbc_autocommit($Link_ID, FALSE);
?>