php存储过程调用实例代码


Posted in PHP onFebruary 03, 2013
//比如要调用的存储过程为gxtj(a,b) 
$db=new mysqli("localhost","ssss","aaaaa","bbbb"); 
mysqli_query($db,"SET NAMES utf8"); 
$result=$db->query("call gxtj($year,$jd)"); // gxtj是mysql的存储过程名称 [color=gray][/color] 
while( $row = $result->fetch_array(MYSQLI_ASSOC)) //完成从返回结果集中取出一行 
{ 
while ($key=key($row)){ //依次取得字段名 
$value=current($row); //依次取得字段值 
} 
}

实例一:无参的存储过程

$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的存储过程
实例十:存储过程中的游标
总结中。

PHP 相关文章推荐
一个可以删除字符串中HTML标记的PHP函数
Oct 09 PHP
用php实现像JSP,ASP里Application那样的全局变量
Jan 12 PHP
php将fileterms函数返回的结果变成可读的形式
Apr 21 PHP
php环境配置之CGI、FastCGI、PHP-CGI、PHP-FPM、Spawn-FCGI比较?
Oct 17 PHP
php在window iis的莫名问题的测试方法
May 14 PHP
PHP flush()与ob_flush()的区别详解
Jun 03 PHP
thinkphp的静态缓存用法分析
Nov 29 PHP
常见php数据文件缓存类汇总
Dec 05 PHP
php类的定义与继承用法实例
Jul 07 PHP
PHP提取字符串中的手机号正则表达式怎么写
Jul 17 PHP
php大小写转换函数(strtolower、strtoupper)用法介绍
Nov 17 PHP
PHP实现对图片的反色处理功能【测试可用】
Feb 01 PHP
php中导出数据到excel时数字变为科学计数的解决方法
Feb 03 #PHP
php中删除字符串中最先出现某个字符的实现代码
Feb 03 #PHP
php数组去重的函数代码
Feb 03 #PHP
php中使用临时表查询数据的一个例子
Feb 03 #PHP
PHP应用JSON技巧讲解
Feb 03 #PHP
set_include_path和get_include_path使用及注意事项
Feb 02 #PHP
php代码中使用换行及(\n或\r\n和br)的应用
Feb 02 #PHP
You might like
PHP中把对象数组转换成普通数组的方法
2015/07/10 PHP
php实现购物车功能(下)
2016/01/05 PHP
ThinkPHP中获取指定日期后工作日的具体日期方法
2018/10/14 PHP
jQuery的链式调用浅析
2010/12/03 Javascript
单击按钮显示隐藏子菜单经典案例
2013/01/04 Javascript
FF IE浏览器修改标签透明度的方法
2014/01/27 Javascript
jquery 实现两级导航菜单附效果图
2014/03/07 Javascript
jQuery操作DOM之获取表单控件的值
2015/01/23 Javascript
jquery实现对联广告的方法
2015/02/05 Javascript
浅谈javascript属性onresize
2015/04/20 Javascript
Vue.js实例方法之生命周期详解
2017/07/03 Javascript
微信小程序实现全局搜索代码高亮的示例
2018/03/30 Javascript
深入浅析vue-cli@3.0 使用及配置说明
2019/05/08 Javascript
element-ui中Table表格省市区合并单元格的方法实现
2019/08/07 Javascript
vue3.0 的 Composition API 的使用示例
2020/10/26 Javascript
[46:20]TFT vs Secret Supermajor小组赛C组 BO3 第二场 6.3
2018/06/04 DOTA
[55:56]NB vs Infamous 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.22
2019/09/05 DOTA
Python数组遍历的简单实现方法小结
2016/04/27 Python
python 字符串和整数的转换方法
2018/06/25 Python
python中hasattr()、getattr()、setattr()函数的使用
2019/08/16 Python
python多进程间通信代码实例
2019/09/30 Python
浅谈keras 模型用于预测时的注意事项
2020/06/27 Python
Python字典fromkeys()方法使用代码实例
2020/07/20 Python
HTML5 Canvas实现360度全景图的示例代码
2018/01/29 HTML / CSS
德国W家官网,可直邮中国的母婴商城:Windeln.de
2021/03/03 全球购物
意大利顶级奢侈品电商:LUISAVIAROMA(支持中文)
2020/05/26 全球购物
Lucene推荐的分页方式是什么?
2015/12/07 面试题
护理自荐信
2013/10/22 职场文书
电气专业推荐信范文
2013/11/18 职场文书
市场营销专业个人求职信范文
2013/12/14 职场文书
入党思想汇报
2014/01/05 职场文书
反洗钱宣传活动总结
2014/08/26 职场文书
离婚协议书范本(通用篇)
2014/11/30 职场文书
2014年惩防体系建设工作总结
2014/12/01 职场文书
幼儿体育课教学反思
2016/02/16 职场文书
你知道Java Spring的两种事务吗
2022/03/16 Java/Android