加入收藏 | 设为首页 | 会员中心 | 我要投稿 汽车网 (https://www.0577qiche.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

如何在PHP中执行存储过程?提供示例代码

发布时间:2023-09-20 10:13:07 所属栏目:PHP教程 来源:
导读:代码如下:

//比如要调用的存储过程为gxtj(a,b)
$db=new mysqli("localhost","ssss","aaaaa","bbbb");
mysqli_query($db,"SET NAMES utf8");
$result=$db->query("call gxtj($year,$jd)"); // gxtj是mysq
代码如下:

//比如要调用的存储过程为gxtj(a,b)  
$db=new mysqli("localhost","ssss","aaaaa","bbbb");  
mysqli_query($db,"SET NAMES utf8");  
$result=$db->query("call gxtj($year,$jd)"); // gxtj是mysql的存储过程名称 [color=gray][/color]  
while( $row = $result->fetch_array(MYSQLI_ASSOC)) //完成从返回结果集中取出一行  
{  //Cuoxin.com 
while ($key=key($row)){ //依次取得字段名  
$value=current($row); //依次取得字段值  
}  
}  
实例一:无参的存储过程,代码如下:

$sql = "call test.myproce();";

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

实例二:传入参数的存储过程,代码如下:

$sql = " 
create procedure myproce2(in score int) 
begin 
if score >= 60 then 
select 'pass' 
else 
select 'no' 
end if; 
end;  
"; 
mysql_query($sql);//创建一个myproce2的存储过程 
$sql = "call test.myproce2(70);"; 
mysql_query($sql);//调用myproce2的存储过程,看不到效果,可以在cmd下看到结果。 
实例三:传出参数的存储过程,代码如下:

$sql = " 
create procedure myproce3(out score int) 
begin 
set score=100; 
end;  
"; 
mysql_query($sql);//创建一个myproce3的存储过程 
$sql = "call test.myproce3(@score);"; 
mysql_query($sql);//调用myproce3的存储过程 
$result = mysql_query('select @score;'); 
$array = mysql_fetch_array($result); 
echo ' 
'print_r($array); 
实例四:传出参数的inout存储过程,代码如下:

$sql = " 
create procedure myproce4(inout sexflag int) 
begin 
SELECT * FROM user WHERE sex = sexflag; 
end;  
"; 
mysql_query($sql);//创建一个myproce4的存储过程 
$sql = "set @sexflag = 1"; 
mysql_query($sql);//设置性别参数为1 
$sql = "call test.myproce4(@sexflag);"; 
mysql_query($sql);//调用myproce4的存储过程,在cmd下面看效果 
实例五:使用变量的存储过程,代码如下:

$sql = " 
create procedure myproce5(in a int,in b int) 
begin 
declare s int default 0; 
set s=a+b; 
select s; 
end;  
"; 
mysql_query($sql);//创建一个myproce5的存储过程 
$sql = "call test.myproce5(4,6);"; 
mysql_query($sql);//调用myproce5的存储过程,在cmd下面看效果 
实例六:case语法,代码如下:

$sql = " 
create procedure myproce6(in score int) 
begin 
case score 
when 60 then select '及格' 
when 80 then select '及良好' 
when 100 then select '优秀' 
else select '未知分数' 
end case; 
end;  
"; 
mysql_query($sql);//创建一个myproce6的存储过程 
$sql = "call test.myproce6(100);"; 
mysql_query($sql);//调用myproce6的存储过程,在cmd下面看效果 
实例七:循环语句,代码如下:

$sql = " 
create procedure myproce7() 
begin 
declare i int default 0; 
declare j int default 0; 
while i<10 do 
set j=j+i; 
set i=i+1; 
end while; 
select j; 
end;  
"; 
mysql_query($sql);//创建一个myproce7的存储过程 
$sql = "call test.myproce7();"; 
mysql_query($sql);//调用myproce7的存储过程,在cmd下面看效果 
实例八:repeat语句,代码如下:

$sql = "  
create procedure myproce8() 
begin 
declare i int default 0; 
declare j int default 0; 
repeat 
set j=j+i; 
set i=i+1; 
until j>=10 
end repeat; 
select j; 
end;  
"; 
mysql_query($sql);//创建一个myproce8的存储过程 
$sql = "call test.myproce8();"; 
mysql_query($sql);//调用myproce8的存储过程,在cmd下面看效果 
实例九:loop语句,代码如下:

loop_label:loop 
set s=s+i; 
set i=i+1; 
if i>=5 then 
leave loop_label; 
end if; 
end loop; 
select s; 
end;  
"; 
mysql_query($sql);//创建一个myproce9的存储过程 
$sql = "call test.myproce9();"; 
mysql_query($sql);//调用myproce9的存储过程,在cmd下面看效果 
实例十:删除存储过程,代码如下:

mysql_query("drop procedure if exists myproce");//删除test的存储过程

实例十:存储过程中的游标

总结中。

(编辑:汽车网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章