adodb的事务处理咋没效果_PHP教程
程序员文章站
2022-06-12 15:04:28
...
问题
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);
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);