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

php如何运行存储过程?php存储过程调用实例代码

发布时间:2022-02-24 05:48:15 所属栏目: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是mysql的存储过程名称 [color=gray][/color] while( $row = $result-fetch
  代码如下:
 
  //比如要调用的存储过程为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的存储过程
 
  实例十:存储过程中的游标
 
  总结中。

(编辑:百客网 - 百科网)

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