問題
adodb的事務處理咋沒效果?
解決方法
數據表都是InnoDB類型的,看下面的代碼,第二條sql語句是錯的,第一條語句卻執行了
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();
?>
執行後的結果:第一條sql語句執行,第二條sql語句不執行。這裡根本沒有起到事務的效果。
我有在網上看到把
$db = &ADONewConnection('mysql');
改成$db = &ADONewConnection('mysqlt');或者$db = &ADONewConnection('mysqli');
可是改了還是不行。
還望各位
來討論下。。。
網友建意:
$db = &ADONewConnection('mysql');
$db->Connect($dbhost, $dbuser, $dbpw, $dbname);