您的位置:首页 > Web前端

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

2016-04-07 17:50 543 查看
我们来测试一下

1.新建一张userdetail表,代表是用户详细信息表

2.做一个用户登录的事务

第一条sql:insert into users(username,userpwd,useremail,sex) values(‘zhangs’,’zhangs@com.cn’,’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);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: