Problem
How can I deal with adodb transactions?
Solution
The data tables are of the InnoDB type. Check the following code. The second SQL statement is incorrect, but the first statement is executed.
Include dirname (_ FILE _). 'adodbadodb. inc. php ';
Include dirname (_ FILE _). 'bbsconfig. inc. php ';
$ ADODB_FETCH_MODE = ADODB_FETCH_ASSOC;
$ Db = & ADONewConnection ('mysql ');
$ Db-> Connect ($ dbhost, $ dbuser, $ dbpw, $ dbname );
$ Db-> debug = 1;
$ Db-> StartTrans ();
$ Db-> Execute ("update table1 set fieldid = fieldid + 1 ");
$ Db-> Execute ("update table2 set joinid1 = joinid + 1 where id = 11 ");
$ Db-> CompleteTrans ();
?>
Result After execution: The first SQL statement is executed, and the second SQL statement is not executed. There is no transaction effect at all.
I have seen
$ Db = & ADONewConnection ('mysql ');
Change to $ db = & ADONewConnection ('mysqlt'); or $ db = & ADONewConnection ('mysqli ');
But it still cannot be changed.
Hope you can
To discuss...
Netizen's suggestion:
$ Db = & ADONewConnection ('mysql ');
$ Db-> Connect ($ dbhost, $ dbuser, $ dbpw, $ dbname );