mysql中存储过程

存储过程procedure

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

 

定义形式:

 

说明:

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

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

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

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

 

调用存储过程:

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

 

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

 

举例1:

#创建一个存储过程:

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

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

 

调用:

 

 

举例2(使用inoutinout):

 

下面使用正确调用方法:

 

 

 

删除存储过程:

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);

 

 

//调用存储过程:

$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); //这里得到的就是“结果集”了

 

?>

posted on 2017-08-16 15:38  好好耕耘  阅读(1988)  评论(0编辑  收藏  举报

导航