用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
转载随意,但请附上文章地址:-)