为了账号安全,请及时绑定邮箱和手机立即绑定

基于Php mysql存储过程的实例

标签:
PHP

实例一:无参的存储过程


$conn = mysql_connect('localhost','root','root'or die ("数据连接错误!!!");mysql_select_db('test',$conn);$sql = "create procedure myproce()beginINSERT INTO user (id, username, sex) VALUES (NULL, 's''0');end;";mysql_query($sql);//创建一个myproce的存储过程$sql "call test.myproce();";mysql_query($sql);//调用myproce的存储过程,则数据库中将增加一条新记录。


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



$sql = "create procedure myproce2(in score int)beginif score >= 60 thenselect 'pass';elseselect 'no';end if;end;";mysql_query($sql);//创建一个myproce2的存储过程$sql "call test.myproce2(70);";mysql_query($sql);//调用myproce2的存储过程,看不到效果,可以在cmd下看到结果。


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


123456789101112$sql = "create procedure myproce3(out score int)beginset 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 '<pre>';print_r($array);


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

1234567891011$sql = "create procedure myproce4(inout sexflag int)beginSELECT * 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)begindeclare 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)begincase scorewhen 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()begindeclare i int default 0;declare j int default 0;while i<10 doset 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()begindeclare i int default 0;declare j int default 0;repeatset j=j+i;set i=i+1;until j>=10end repeat;select j;end;";mysql_query($sql);//创建一个myproce8的存储过程$sql "call test.myproce8();";mysql_query($sql);//调用myproce8的存储过程,在cmd下面看效果


实例九:loop语句


$sql = "create procedure myproce9()begindeclare i int default 0;declare s int default 0;loop_label:loopset s=s+i;set i=i+1;if i>=5 thenleave loop_label;end if;end loop;select s;end;";mysql_query($sql);//创建一个myproce9的存储过程$sql "call test.myproce9();";mysql_query($sql);//调用myproce9的存储过程,在cmd下面看效果


实例十:删除存储过程

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


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

1.存储过程可用于InnoDB或MyISAM类型的表
2.show procedure status显示数据库中所有存储的存储过程基本信息,包括所属数据库,存储过程名称,创建时间等
3.SHOW CREATE PROCEDURE myproce显示某一个存储过程的详细信息



点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

举报

0/150
提交
取消