PHP Conference Japan 2024

odbc_autocommit

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

odbc_autocommit切換自動提交行為

描述

odbc_autocommit(Odbc\Connection $odbc, ?bool $enable = null): int|bool

切換自動提交行為。

預設情況下,連線的自動提交是開啟的。關閉自動提交等同於開始一個交易。

參數

odbc

ODBC 連線物件,詳情請參閱 odbc_connect()

enable

如果 enabletrue,則啟用自動提交;如果為 false,則停用自動提交。如果傳遞 null,此函數會傳回 odbc 的自動提交狀態。

傳回值

使用 null enable 參數時,此函數會傳回 odbc 的自動提交狀態。如果自動提交開啟,則傳回非零值;如果關閉,則傳回 0;如果發生錯誤,則傳回 false

如果 enable 為非 null 值,此函數會在成功時傳回 true,失敗時傳回 false

變更日誌

版本 描述
8.4.0 odbc 現在需要 Odbc\Connection 實例;之前需要 resource
8.3.0 enable 現在可為 null。

參見

新增註解

使用者貢獻註解 6 則註解

1
JRog
21 年前
如果在連線上存在使用中的結果 ID 時啟動交易(停用自動提交),odbc_autocommit 會發出警告(無法設定自動提交)。使用 odbc_free_result 清除結果 ID,或在執行 SQL 之前啟動交易。
0
alvaro at demogracia dot com
16 年前
如果您使用的是持續性連線(odbc_pconnect 而不是 odbc_connect),則下一個重複使用該連線的腳本將會繼承您對自動提交的變更。
0
Orgied - info at orgied dot com
19 年前
嗨(我是比利時人,所以很抱歉我的英文不好)。

我認為您可以更簡單地檢查錯誤

$conn = odbc_connect($odbc,$user,$password)
或 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);

我不確定使用 odbc_error() 是否比
odbc_error($conn) 更好。結果似乎相同。
0
Joe
20 年前
看來由 andrea dot galli at acotel dot com 製作的範例正好相反。

它會將自動提交設定為關閉,而不是像註解中寫的那樣開啟!
-1
alonsoalonsocr at yahoo dot com
23 年前
在 odbc_fetch 迴圈中使用時,您選取的結果集會遺失,並且迴圈會結束。
-4
andrea dot galli at acotel dot com
21 年前
範例:設定自動提交開啟

<?php

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

$Return = odbc_autocommit($Link_ID, FALSE);

?>
To Top