从此不求人:自主研发一套PHP前端开发框架(13)

我们来测试一下
1.新建一张userdetail表,代表是用户详细信息表
2.做一个用户登录的事务
第一条sql:insert into users(username,userpwd,useremail,sex) values(‘zhangs’,’[email protected]’,’1’);
第二条sql:
mysql中获取自增的id:select LAST_INSERT_ID() into @newuserid;
第三条sql:
insert into usersdetail(userid,userturename,userqq) values(@newuserid,’张三’,”)
第四条sql:
select @newuserid;

functions.inc

    function execForTrac($sqllist,$resulttype) //用事务 来执行
    {

        //$sqllist 参数 是sql数组
        $type=array("none","string","array","int"); //返回类型
        if(!in_array($resulttype,$type)) return false;
        if(count($sqllist)==0) return false;
        $this->_db->BeginTrans(); //开启事务
        $sqlindex=0;
        $ret=false;
        foreach($sqllist as $sql)
        {


            if($sqlindex==(count($sqllist)-1)) //最后一个语句 需要根据返回类型来做不同的处理
            {
                 if($resulttype=="none")
                 {
                      $this->_db->Execute($sql);
                 }
                  else if($resulttype=="array")
                  {
                    $ret=$this->execForArray($sql);
                  }
                  else if($resulttype=="int" || $resulttype=="string")
                  {

                    $ret=$this->execForOne($sql);
                  }
                    else
                    {
                         $ret=$this->execForArray($sql);
                    }

            }
            else
            $this->_db->Execute($sql);
            $sqlindex++;
        }
        if($ret){
          $this->_db->CommitTrans();
        }else{
          $this->_db->RollbackTrans();
        }
        return $ret;
    }

index.inc测试代码部分

$db = load_db();

          $sql[] = "insert into onethink_ucenter_member(username,password,email) values('laikedoud','0931e5bac9c74449eb14fcdbe4223d3c','laike13545@qq.com')";
          $sql[] = 'select LAST_INSERT_ID() into @newuserid';
          $sql[] ="insert into onethink_member(last_login_time,nickname,qq) values(@newuserid,'laikedou','924462390')";
          $sql[] = 'select @newuserid';
          $userid =$db->execForTrac($sql,'int');
          exit('当前用户ID是:'.$userid);

你可能感兴趣的:(从此不求人:自主研发一套PHP前端开发框架(13))