mysql中存储过程

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql中存储过程相关的知识,希望对你有一定的参考价值。

存储过程procedure

存储过程,其本质还是函数——但其规定:不能有返回值;

 

定义形式:

 技术分享

说明:

1,in:用于设定该变量是用来“接收实参数据”的,即“传入”;默认不写,就是in

2,out:用于设定该变量是用来“存储存储过程中的数据”的,即“传出”,即函数中必须对它赋值;

3,inout:是in和out的结合,具有双向作用;

4,对于,out和inout设定,对应的实参,就“必须”是一个变量,因为该变量是用于“接收传出数据”;

 

调用存储过程:

call  存储过程名 (实参1,实参2,.... )

 

它应该是在“非编程环境中”调用,即执行增删改查的场景下;

 

举例1:

#创建一个存储过程:

#该存储过程的目标是:将3个数据写入到表tab_int;

#并返回该表的第一个字段的前3大值的行

 技术分享

调用:

 技术分享

 

举例2(使用in,out,inout):

 技术分享

下面使用正确调用方法:

 技术分享

 

 

删除存储过程:

drop  procedure  存储过程名;

 

在php中使用存储函数或存储过程的示意

<php

//调用存储函数:

$v1 = $_POST[‘a’];

$v2 = $_POST[‘b’];

$sql = “insert  into  tab1  (id,  f2,  f3)  values ( null,  now(),  func1($v1 , $v2 )  )”;

$result  =  mysql_query($sql);

 

 http://www.qwangxiao.com/t/henan/

//调用存储过程:

$v1 = $_POST[‘username’];

$v2 = $_POST[‘pass’];

$v3 = $_POST[‘age’];

$sql = “ call   insert_user($v1, $v2,  $v3 ); ”; //insert_user()是一个存储过程,带3个参数,会将该3个参数数据写入(insert)某个表中。

$result = mysql_query();

 

另一个使用存储过程返回结果集的例子:

$id = $_GET[‘id’];

$sql = “call  Get_User_Info( $id )  “; //Get_User_Info()是一个存储过程,其中会返回某个指定id的用户信息

$result = mysql_query($sql); //这里得到的就是“结果集”了

 

?>

以上是关于mysql中存储过程的主要内容,如果未能解决你的问题,请参考以下文章

mysql 存储过程总结(一)

mysql存储过程知识点难学吗?

怎么在mysql中查询已建立的存储过程

mysql中的存储过程怎么使用

mysql中存储过程和游标调用问题

mysql存储过程中怎么进行跨库操作?