ODBC 函数
在线手册:中文  英文

odbc_autocommit

(PHP 4, PHP 5)

odbc_autocommitToggle autocommit behaviour

说明

mixed odbc_autocommit ( resource $connection_id [, bool $OnOff = false ] )

Toggles autocommit behaviour.

By default, auto-commit is on for a connection. Disabling auto-commit is equivalent with starting a transaction.

参数

connection_id

ODBC 连接标识符,详见 odbc_connect()

OnOff

If OnOff is TRUE, auto-commit is enabled, if it is FALSE auto-commit is disabled.

返回值

Without the OnOff parameter, this function returns auto-commit status for connection_id. Non-zero is returned if auto-commit is on, 0 if it is off, or FALSE if an error occurs.

If OnOff is set, this function returns TRUE on success and FALSE on failure.

参见


ODBC 函数
在线手册:中文  英文

用户评论:

alvaro at demogracia dot com (2008-08-06 01:18:12)

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.

Orgied - info at orgied dot com (2005-04-05 23:58:24)

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.

Ron (2004-08-20 23:51:15)

using autocommit functionality to rollback transactions in a "workspace"

<?php
$conn 
odbc_connection("$DSN","USER","PASS");
//turns off autocommit
odbc_autocommit($conn,FALSE);

$query1 "some SQL";
$query2 "some more SQL";

$ErrorCount 0;
//if odbc_exec fails it will increment the $ErrorCount
$result odbc_exec($conn,$query1) or $ErrorCount++;
$result2 odbc_exec($conn,$query2) or $ErrorCount++;

//checking for errors, commit if none, rollback else
if ($Errorcount == 0){
    
odbc_commit($conn);
    echo 
"transaction successful";
}
else{
    
odbc_rollback($conn);
    echo 
"there were errors processing the transaction.
    No changes were made to the database"
;
}

odbc_close($conn);

?>

Cheers,
Ron

Joe (2004-05-26 09:01:23)

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!

JRog (2003-06-25 13:30:22)

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.

andrea dot galli at acotel dot com (2003-04-28 09:48:34)

Example: set autocommit on

<?php

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

    
$Return odbc_autocommit($Link_IDFALSE);

?>

alonsoalonsocr at yahoo dot com (2001-10-08 15:09:16)

When used in a odbc_fetch loop your selected resultset is lost and loop ends.

易百教程