CascadiaPHP 2024

odbc_autocommit

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_autocommit自動コミットの動作をオンまたはオフにする

説明

odbc_autocommit(resource $odbc, ?bool $enable = null): int|bool

自動コミットの挙動を切り替えます。

デフォルトで接続の自動コミットはオンとなっています。自動コミットを 使用不可にするのは、トランザクションを開始することと等価です。

パラメータ

odbc

ODBC 接続 ID。詳細は odbc_connect() を参照ください。

enable

enabletrue の場合は自動コミットが可能であり、 false の場合は自動コミットが使用不可となっています。 null を渡した場合、この関数は odbc の自動コミットに関する状態を返します。

戻り値

enable パラメータに null を指定した場合、 この関数は、odbc に関する 自動コミットの状態を返します。自動コミットがオンの場合に 非ゼロ、オフの場合にゼロ、エラーを生じた場合に false を返します。

enablenull でない値の場合、 この関数は成功時に true、失敗したときに false を返します。

変更履歴

バージョン 説明
8.3.0 enable は、nullable になりました。

参考

add a note

User Contributed Notes 6 notes

up
1
JRog
21 years ago
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.
up
0
alvaro at demogracia dot com
15 years ago
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.
up
0
Orgied - info at orgied dot com
19 years ago
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.
up
0
Joe
20 years ago
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!
up
-1
alonsoalonsocr at yahoo dot com
22 years ago
When used in a odbc_fetch loop your selected resultset is lost and loop ends.
up
-4
andrea dot galli at acotel dot com
21 years ago
Example: set autocommit on

<?php

$Link_ID
= odbc_connect("DSN", "user", "pass");

$Return = odbc_autocommit($Link_ID, FALSE);

?>
To Top