用ADODB实现事务
我想用ADODB实现事务,让两条update语句要么都做要么都不做,但是却始终不成功。代码如下:
<?php $db = NewADOConnection('mysql'); //创建一个ADODB连接对象 $mysql_conn = $db->Connect("localhost","root","", "anna"); $db->BeginTrans(); $ok = $db->Execute("update user set user_name= '098'where id=3"); if($ok) $ok=$db->Execute("update user set user_name= where id=2"); if ($ok){$db->CommitTrans();} else {$db->RollbackTrans(); }
结果却是第一条语句成功了,第二条没有成功。
但是同样我用MYSQL自带的函数却可以实现我要的功能,代码如下:
<?php mysql_query("SET AUTOCOMMIT=0"); $ok1 = $db->Execute("update user set user_name= '098'where id=3"); $ok2=$db->Execute("update user set user_name= where id=2"); if ($ok1 && $ok2 ){ mysql_query("COMMIT");} else {mysql_query("ROLLBACK");}
本文地址:http://www.phprm.com/code/69f93d41f3c4729e4a3efeeed01df412.html
转载随意,但请附上文章地址:-)