你先看看你mysql表的引擎是myisam还是innodb.
myisam不支持事务操作

解决方案 »

  1.   

    mysql_query("SET AUTOCOMMIT=0"); 先設置不自動commit然後在成功的位置,加入 mysql_query("COMMIT");
        mysql_query("BEGIN"); 
        mysql_query("SET AUTOCOMMIT=0");  
     
        $result=mysql_query("UPDATE vip set time='".$intime."'"."  where user='".$uid."' and ". "setype='".$usetype."'");
        if (!$result){
            echo "///0///";
            mysql_query("ROLLBACK"); 
            return;
        }
     
        $result=mysql_query("UPDATE addcard set time=curdate()".",userw='".$uid."',sev='".$usetype."'  where card='".$card."'");
        if (!$result){
            echo "///0///";
            mysql_query("ROLLBACK"); 
            return;
        }
        mysql_query("COMMIT");
      

  2.   

    竟然代码没问题,看来可能是MYSQL服务器程序的问题
      

  3.   

    SET AUTOCOMMIT=0
    完成 后要不要再设定为1
      

  4.   

    我用的是长连接mysql_pconnect,这样也可以吗
      

  5.   

        mysql_query("SET AUTOCOMMIT=0");  
        $err = false;
        mysql_query("BEGIN"); 
      
        $result=mysql_query("UPDATE vip set time='".$intime."'"."  where user='".$uid."' and ". "setype='".$usetype."'");
        if (!$result){
            $err = true;
        }
      
        $result=mysql_query("UPDATE addcard set time=curdate()".",userw='".$uid."',sev='".$usetype."'  where card='".$card."'");
        if (!$result){
            $err = true;
        }
        if($err) {
            mysql_query("ROLLBACK"); 
        }
        mysql_query("COMMIT");
    事务是对一组指令而言的,只有一组指令都成功了,才算成功另外,你执行的是 update 指令,$result 只在指令写错时才会为假
      

  6.   

    注意我最后一句代码是mysql_query("ROLLBACK");
    应该无论无何都不修改才对,但是第二条修改却成功了
    其实我就是想看下事务的效果
      

  7.   

    不是这个原因,就几条数据,我直接在PHPMYADMIN中查看的
    可能是服务器程序的原因,这个空间中用MYSQL的时间函数取出来的时间竟然是在1到3个小时的的范围内变动的,而且并不是每次都变动,这两个随机明显是有问题的
      

  8.   


        mysql_query("SET AUTOCOMMIT=0");  
        $err = false;
        mysql_query("BEGIN"); 
      
        $result=mysql_query("UPDATE vip set time='".$intime."'"."  where user='".$uid."' and ". "setype='".$usetype."'") or die(mysql_error());
        if (!$result){
            $err = true;
        }
      
        $result=mysql_query("UPDATE addcard set time=curdate()".",userw='".$uid."',sev='".$usetype."'  where card='".$card."'") or die(mysql_error());
        if (!$result){
            $err = true;
        }
        if($err) {
            mysql_query("ROLLBACK"); 
        }
        mysql_query("COMMIT");