注意:关于示例所讲到的存储过程和函数及数据库表的创建,可通过查看之前的文章有进行介绍。。。
存储过程和存储函数都是存储在服务器的SQL语句的集合。要使用这些已经定义好的存储过程和存储函数就必须要通过调用的方式来实现。对存储过程和函数的操作主要可以分为调用、查看、修改和删除。
1 调用存储过程
存储过程的调用在前面的示例中多次被提到。MySQL中使用的CALL语句来调用存储过程。调用存储过程后,数据库系统将执行存储过程的语句;然后将结果返回给输出值。CALL语句的基本语法形式如下:
CALL sp_name([parameter[,.....]);
其中,sp_name是存储过程的名称;parameter是存储过程的参数。
2 调用存储函数
在MySQL中,存储函数的使用方法与MySQL内部函数的使用方法基本相同。用户自定义的存储函数与MySQL内部函数性质相同。区别在于,存储函数是用户自定义的,而内部函数由MySQL自带。其语法结构如下。
SELECT function_name([parameter[,....]]);
3 示例:创建存储过程并在PHP中调用该存储过程实现用户注册
3.1 创建pro_reg存储过程,其代码如下:
delimiter //
create procedure pro_reg(in nc varchar(50),in pwd varchar(50),in email varchar(50),in address varchar(50))
begin
insert into tb_reg(name,pwd,email,address) values (nc,pwd,email,address);
end;
//
3.2 通过PHP预定义类mysqli实现于MySQL数据库的连接,代码如下:
<?php
if($_POST['submit']!=""){
$conn=new mysqli("localhost","root","root","db_database14"); //连接数据库
$conn->query("set names utf8"); //设置编码格式
$name=$_POST['name'];
$pw=md5($_POST['pwd']);
$email=$_POST['email'];
$address=$_POST['address'];
(3)调用存储过程pro_reg实现将用户录入的注册信息保存到数据库,代码如下:
if($sql=$conn->query("call pro_reg('".$name."','".$pwd."','".$email."','".$address."')")){ //调用存储过程
echo "<script>alert('用户注册成功!');</script>";
}else{
echo "<script>alert('用户注册失败!');</script>";
}
}
?>
4 Java调用MySQL存储过程的实例
可参见:java调用mysql的存储过程