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 个注释

JRog
21 年前
如果在连接上存在活动的结果 ID 时启动事务(禁用自动提交),则 odbc_autocommit 将发布警告(无法设置自动提交)。使用 odbc_free_result 清除结果 ID 或在执行 SQL 之前启动事务。
alvaro at demogracia dot com
16 年前
如果您使用的是持久连接(odbc_pconnect 而不是 odbc_connect),则重用该连接的下一个脚本将继承您对自动提交的更改。
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);

如果 (!odbc_error())
odbc_commit($conn);
否则
odbc_rollback($conn);

odbc_close($conn);

我不确定使用 odbc_error() 是否比
odbc_error($conn) 更好。结果似乎相同。
Joe
20 年前
似乎 andrea dot galli at acotel dot com 创建的示例完全相反。

它将自动提交设置为关闭而不是打开,就像注释中写的那样!
alonsoalonsocr at yahoo dot com
23 年前
在 odbc_fetch 循环中使用时,您选择的结果集将丢失,并且循环结束。
andrea dot galli at acotel dot com
21 年前
示例:设置自动提交打开

<?php

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

$Return = odbc_autocommit($Link_ID, FALSE);

?>
To Top