dismiss Step into the future! Click here to switch to the beta php.net site
downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | conferences | my php.net

search for in the

odbc_binmode> <ODBC Functions
[edit] Last updated: Fri, 28 Jun 2013

view this page in

odbc_autocommit

(PHP 4, PHP 5)

odbc_autocommitToggle autocommit behaviour

Description

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.

Parameters

connection_id

The ODBC connection identifier, see odbc_connect() for details.

OnOff

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

Return Values

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.

See Also



odbc_binmode> <ODBC Functions
[edit] Last updated: Fri, 28 Jun 2013
 
add a note add a note User Contributed Notes odbc_autocommit - [7 notes]
up
0
alvaro at demogracia dot com
4 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
8 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
9 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
0
JRog
10 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
andrea dot galli at acotel dot com
10 years ago
Example: set autocommit on

<?php

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

   
$Return = odbc_autocommit($Link_ID, FALSE);

?>
up
0
alonsoalonsocr at yahoo dot com
11 years ago
When used in a odbc_fetch loop your selected resultset is lost and loop ends.
up
-1
Ron
8 years ago
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

 
show source | credits | stats | sitemap | contact | advertising | mirror sites