zl程序教程

您现在的位置是:首页 >  后端

当前栏目

php存储过程调用实例代码

实例PHP存储代码 过程 调用
2023-06-13 09:14:45 时间
复制代码代码如下:

//比如要调用的存储过程为gxtj(a,b)
$db=newmysqli("localhost","ssss","aaaaa","bbbb");
mysqli_query($db,"SETNAMESutf8");
$result=$db->query("callgxtj($year,$jd)");//gxtj是mysql的存储过程名称[color=gray][/color]
while($row=$result->fetch_array(MYSQLI_ASSOC))//完成从返回结果集中取出一行
{
while($key=key($row)){//依次取得字段名
$value=current($row);//依次取得字段值
}
}


实例一:无参的存储过程

复制代码代码如下:

$conn=mysql_connect("localhost","root","root")ordie("数据连接错误!!!");
mysql_select_db("test",$conn);
$sql="
createproceduremyproce()
begin
INSERTINTOuser(id,username,sex)VALUES(NULL,"s","0");
end;
";
mysql_query($sql);//创建一个myproce的存储过程

$sql="calltest.myproce();";
mysql_query($sql);//调用myproce的存储过程,则数据库中将增加一条新记录。

实例二:传入参数的存储过程

复制代码代码如下:
$sql="
createproceduremyproce2(inscoreint)
begin
ifscore>=60then
select"pass";
else
select"no";
endif;
end;
";
mysql_query($sql);//创建一个myproce2的存储过程
$sql="calltest.myproce2(70);";
mysql_query($sql);//调用myproce2的存储过程,看不到效果,可以在cmd下看到结果。

实例三:传出参数的存储过程

复制代码代码如下:
$sql="
createproceduremyproce3(outscoreint)
begin
setscore=100;
end;
";
mysql_query($sql);//创建一个myproce3的存储过程
$sql="calltest.myproce3(@score);";
mysql_query($sql);//调用myproce3的存储过程
$result=mysql_query("select@score;");
$array=mysql_fetch_array($result);
echo"<pre>";print_r($array);

实例四:传出参数的inout存储过程

复制代码代码如下:
$sql="
createproceduremyproce4(inoutsexflagint)
begin
SELECT*FROMuserWHEREsex=sexflag;
end;
";
mysql_query($sql);//创建一个myproce4的存储过程
$sql="set@sexflag=1";
mysql_query($sql);//设置性别参数为1
$sql="calltest.myproce4(@sexflag);";
mysql_query($sql);//调用myproce4的存储过程,在cmd下面看效果

实例五:使用变量的存储过程

复制代码代码如下:
$sql="
createproceduremyproce5(inaint,inbint)
begin
declaresintdefault0;
sets=a+b;
selects;
end;
";
mysql_query($sql);//创建一个myproce5的存储过程
$sql="calltest.myproce5(4,6);";
mysql_query($sql);//调用myproce5的存储过程,在cmd下面看效果

实例六:case语法

复制代码代码如下:
$sql="
createproceduremyproce6(inscoreint)
begin
casescore
when60thenselect"及格";
when80thenselect"及良好";
when100thenselect"优秀";
elseselect"未知分数";
endcase;
end;
";
mysql_query($sql);//创建一个myproce6的存储过程
$sql="calltest.myproce6(100);";
mysql_query($sql);//调用myproce6的存储过程,在cmd下面看效果

实例七:循环语句

复制代码代码如下:
$sql="
createproceduremyproce7()
begin
declareiintdefault0;
declarejintdefault0;
whilei<10do
setj=j+i;
seti=i+1;
endwhile;
selectj;
end;
";
mysql_query($sql);//创建一个myproce7的存储过程
$sql="calltest.myproce7();";
mysql_query($sql);//调用myproce7的存储过程,在cmd下面看效果

实例八:repeat语句

复制代码代码如下:
$sql="
createproceduremyproce8()
begin
declareiintdefault0;
declarejintdefault0;
repeat
setj=j+i;
seti=i+1;
untilj>=10
endrepeat;
selectj;
end;
";
mysql_query($sql);//创建一个myproce8的存储过程
$sql="calltest.myproce8();";
mysql_query($sql);//调用myproce8的存储过程,在cmd下面看效果

实例九:loop语句

复制代码代码如下:
$sql="
createproceduremyproce9()
begin
declareiintdefault0;
declaresintdefault0;

loop_label:loop
sets=s+i;
seti=i+1;
ifi>=5then
leaveloop_label;
endif;
endloop;
selects;
end;
";
mysql_query($sql);//创建一个myproce9的存储过程
$sql="calltest.myproce9();";
mysql_query($sql);//调用myproce9的存储过程,在cmd下面看效果

实例十:删除存储过程

mysql_query("dropprocedureifexistsmyproce");//删除test的存储过程
实例十:存储过程中的游标
总结中。