基于Php mysql存储过程的详解

时间:2024-06-05 09:22:00 

实例一:无参的存储过程


$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的存储过程

$sql = "call test.myproce();";
mysql_query($sql);//调用myproce的存储过程,则数据库中将增加一条新记录。


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


$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下看到结果。


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


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


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


$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下面看效果


实例五:使用变量的存储过程


$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下面看效果


实例六:case语法


$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下面看效果


实例七:循环语句


$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下面看效果


实例八:repeat语句


$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下面看效果


实例九:loop语句


$sql = "
create procedure myproce9()
begin
declare i int default 0;
declare s int default 0;

loop_label:loop
set s=s+i;
set i=i+1;
if i>=5 then
leave 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的存储过程
实例十一:存储过程中的游标
总结:
1.存储过程可用于InnoDB或MyISAM类型的表
2.show procedure status显示数据库中所有存储的存储过程基本信息,包括所属数据库,存储过程名称,创建时间等<br>
3.SHOW CREATE PROCEDURE myproce显示某一个存储过程的详细信息<br>

标签:php,mysql,存储过程
0
投稿

猜你喜欢

  • Laravel重定向,a链接跳转,控制器跳转示例

    2024-04-28 09:45:02
  • numpy 进行数组拼接,分别在行和列上合并的实例

    2021-06-28 00:06:40
  • 有关将idea的系统配置文件移到其它盘激活失效的问题

    2022-02-16 09:33:37
  • 网马解密大讲堂——网马解密中级篇(Freshow工具使用方法)

    2009-09-16 15:09:00
  • python基础入门之字典和集合

    2022-02-21 03:47:19
  • window安装mysql(zip、noinstall)

    2009-10-17 21:10:00
  • python中使用sys模板和logging模块获取行号和函数名的方法

    2022-07-19 14:58:22
  • Python安装依赖(包)模块方法详解

    2023-11-02 15:38:01
  • MySQL 5.7.30 安装与升级问题详细教程

    2024-01-21 09:42:40
  • Python if else条件语句形式详解

    2021-09-21 06:48:24
  • MySQL binlog_ignore_db 参数的具体使用

    2024-01-20 12:32:59
  • python 下载文件的几种方式分享

    2021-03-27 14:08:17
  • Python json读写方式和字典相互转化

    2021-03-25 05:28:19
  • Python Opencv基于透视变换的图像矫正

    2022-03-13 16:47:14
  • 一看就懂得Python的math模块

    2021-03-28 21:40:32
  • 使用django自带的user做外键的方法

    2023-04-16 06:54:36
  • ThinkPHP中__initialize()和类的构造函数__construct()用法分析

    2023-07-08 01:26:24
  • Python协程的四种实现方式总结

    2022-12-23 04:41:59
  • MySQL按小时查询数据,没有的补0

    2024-01-18 00:55:30
  • 在Golang中执行Shell命令的教程详解

    2024-04-25 15:10:51
  • asp之家 网络编程 m.aspxhome.com