1.mysql存储过程编写。
drop procedure if exists updateclubinfo;
create procedure updateclubinfo(IN `user_id` int,IN `clubid` int,in `club_name` varchar(100),in `club_text` varchar(150),in `club_pump` tinyint(1),in `club_open` tinyint(1))
BEGIN
set @res = 0;
set @clubmaster = 0;
set @msg = '操作失败';
select clubmaster into @clubmaster from club where id=clubid and clubmaster=user_id;
IF @clubmaster THEN
UPDATE club set clubname=club_name,clubtext = club_text,clubpump=club_pump/100,clubopen=club_open where id=clubid;
select ROW_COUNT() into @res;
IF @res THEN
set @msg = '操作成功';
END IF;
select @res as res,@msg as msg;
ELSE
set @msg = '非创建者无法操作';
select @res as res,@msg as msg;
END IF;
END
2.tp5调用mysql存储过程
$userid = 11;
$clubid = intval($this->param['clubid']);
$clubname = trim($this->param['clubname']);//文本格式
$clubtext = trim($this->param['clubtext']); //文本格式
$clubpump = intval($this->param['clubpump']);
$clubopen = intval($this->param['clubopen']);//俱乐部是否只允许管理员建立房间,0为所有成员都可建房;1为只能管理员才能建房
$res = Db::query("call updateclubinfo($userid,$clubid,'$clubname','$clubtext',$clubpump,$clubopen)");
3.将$res打印出来,进行处理。
因为打印出来的数组是多维数组
if($res&&$res[0][0]&&$res[0][0]['res'] == 1){
$this->getBackTo('俱乐部信息更新成功',0);
}else{
$this->getBackTo($res[0][0]['msg'],1);
}