基于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