Delicious Bookmark this on Delicious Share on Facebook SlashdotSlashdot It! Digg! Digg



PHP : Function Reference : ODBC Functions (Unified) : odbc_autocommit

odbc_autocommit

Toggle autocommit behaviour (PHP 4, PHP 5)
mixed odbc_autocommit ( resource connection_id [, bool OnOff] )

Examples ( Source code ) » odbc_autocommit

<?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);
?>

Code Examples / Notes » odbc_autocommit

alonsoalonsocr

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

ron

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

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

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.

orgied - info

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.


andrea dot galli

Example: set autocommit on
<?php
  $Link_ID = odbc_connect("DSN", "user", "pass");
   $Return = odbc_autocommit($Link_ID, FALSE);
?>


Change Language


Follow Navioo On Twitter
odbc_autocommit
odbc_binmode
odbc_close_all
odbc_close
odbc_columnprivileges
odbc_columns
odbc_commit
odbc_connect
odbc_cursor
odbc_data_source
odbc_do
odbc_error
odbc_errormsg
odbc_exec
odbc_execute
odbc_fetch_array
odbc_fetch_into
odbc_fetch_object
odbc_fetch_row
odbc_field_len
odbc_field_name
odbc_field_num
odbc_field_precision
odbc_field_scale
odbc_field_type
odbc_foreignkeys
odbc_free_result
odbc_gettypeinfo
odbc_longreadlen
odbc_next_result
odbc_num_fields
odbc_num_rows
odbc_pconnect
odbc_prepare
odbc_primarykeys
odbc_procedurecolumns
odbc_procedures
odbc_result_all
odbc_result
odbc_rollback
odbc_setoption
odbc_specialcolumns
odbc_statistics
odbc_tableprivileges
odbc_tables
eXTReMe Tracker