mysql无参的存储过程_MySQL_基于Php mysql存储过程的详解,实例一:无参的存储过程复制 - phpStudy...

基于Php mysql存储过程的详解

实例一:无参的存储过程

$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 '

';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显示数据库中所有存储的存储过程基本信息,包括所属数据库,存储过程名称,创建时间等

3.SHOW CREATE PROCEDURE myproce显示某一个存储过程的详细信息

相关阅读:

c#数学表示法(后缀表示法)详解

MyBatis批量添加、修改和删除

Mac系统中Safari无法退出不能关机该怎么办?

ASP.NET JSON字符串与实体类的互转换示例代码

目前流行的JavaScript库的介绍及对比

CentOS 6.2使用yum安装LAMP以及phpMyadmin详解

PHP中soap的用法实例

win7系统浏览网页弹出404 not found的错误信息 win7弹出404 not found的解决方法

解决MySQL5.7安装后没有data文件夹无法登录的问题

Win7系统网页内容怎么保存?Win7系统截取整个网页的方法

PHP实现克鲁斯卡尔算法实例解析

jQuery 和 CSS 的文本特效插件集锦

jQuery树形下拉菜单特效代码分享

mysql Innodb表空间卸载、迁移、装载的使用方法

你可能感兴趣的:(mysql无参的存储过程)