我写的事务是很多条SQL语句在一起的,然后头部start transaction;尾部执行commit;中间是SQL若干,在PHPMYADMIN里可以正常执行,一但任意一条SQL出错,整个事务不执行,达到了想要的效果。但是在PHP里,它不能直接query($sql)吗?我看网上说的,需要一条一条的query,然后判断是否全OK,否则再回滚,那样好麻烦啊

解决方案 »

  1.   

    对,要判断是否执行成功,否则ROLLBACK
    function Tran( $sql ) {
             $judge = 1;
             mysql_query('begin');
             foreach ($sql as $v) {
                     if ( !mysql_query($v) ) {
                             $judge = 0;
                     }
             }
             if ($judge == 0) {
                     mysql_query('rollback');
                     return false;
             }
             elseif ($judge == 1) {
                     mysql_query('commit');
                     return true;
             }
    }
      

  2.   

    谢谢版主,MYSQL事务没有像oracle那样把很多条SQL语句放在一起批量执行的吗?那样简单