php存储过程调用的解决办法
内容摘要
这篇文章主要为大家详细介绍了php存储过程调用的简单示例,具有一定的参考价值,可以用来参考一下。
感兴趣的小伙伴,下面一起跟随php教程的小玲来看看吧!
代码如下:
//比如要
感兴趣的小伙伴,下面一起跟随php教程的小玲来看看吧!
代码如下:
//比如要
文章正文
这篇文章主要为大家详细介绍了php存储过程调用的简单示例,具有一定的参考价值,可以用来参考一下。
感兴趣的小伙伴,下面一起跟随php教程的小玲来看看吧!
代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 | <code> //比如要调用的存储过程为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)) //完成从返回结果集中取出一行 { while ( $key =key( $row )){ //依次取得字段名 $value =current( $row ); //依次取得字段值 } } </code> |
实例一:无参的存储过程
代码如下:
1 2 3 4 5 6 7 8 9 | <code> $conn = mysql_connect( 'localhost' , 'root' , 'root' ) or die ( "数据连接错误!!!" ); mysql_select_db( 'test' , $conn ); $sql = " create procedure myproce() begin INSERT INTO user (id, username, sex) VALUES (NULL, 's' , '0' ); end ; "; mysql_query( $sql ); //创建一个myproce的存储过程</code> |
$sql = "call test.myproce();";mysql_query($sql);//调用myproce的存储过程,则数据库中将增加一条新记录。
实例二:传入参数的存储过程
代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <code> $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下看到结果。 </code> |
实例三:传出参数的存储过程
代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 | <code> $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 '<pre>' ;print_r( $array ); </code> |
实例四:传出参数的inout存储过程
代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 | <code> $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下面看效果 </code> |
实例五:使用变量的存储过程
代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 | <code> $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下面看效果 </code> |
实例六:case语法
代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <code> $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下面看效果 </code> |
实例七:循环语句
代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <code> $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下面看效果 </code> |
实例八:repeat语句
代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | <code> $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下面看效果 </code> |
实例九:loop语句
代码如下:
1 2 3 4 5 | <code> $sql = " create procedure myproce9() begin declare i int default 0; declare s int default 0;</code> |
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下面看效果
实例十:删除存储过程
mysql_query("drop procedure if exists myproce");//删除test的存储过程实例十:存储过程中的游标总结中。
注:关于php存储过程调用的简单示例的内容就先介绍到这里,更多相关文章的可以留意
代码注释