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 相关文章推荐
连接到txt文本的超链接,不直接打开而是点击后下载的处理方法
Jul 01 PHP
php中比较简单的导入phpmyadmin生成的sql文件的方法
Jun 28 PHP
php 阴历-农历-转换类代码
Jan 16 PHP
利用PHP生成静态HTML文档的原理
Oct 29 PHP
使用迭代器 遍历文件信息的详解
Jun 08 PHP
解决PHP4.0 和 PHP5.0类构造函数的兼容问题
Aug 01 PHP
php+ajax导入大数据时产生的问题处理
Jun 11 PHP
windows7下安装php的imagick和imagemagick扩展教程
Jul 04 PHP
推荐5款跨平台的PHP编辑器
Dec 25 PHP
php提取身份证号码中的生日日期以及验证是否为成年人的函数
Sep 29 PHP
php多线程实现方法及用法实例详解
Oct 26 PHP
在laravel中实现ORM模型使用第二个数据库设置
Oct 24 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读取二进制流(C语言结构体struct数据文件)的深入解析
2013/06/13 PHP
ThinkPHP实现事务回滚示例代码
2014/06/23 PHP
Bootstrap+PHP实现多图上传功能实例详解
2018/04/08 PHP
PHP Cli 模式设置进程名称的方法
2019/06/12 PHP
laravel withCount 统计关联数量的方法
2019/10/10 PHP
PHP设计模式概论【概念、分类、原则等】
2020/05/01 PHP
限制复选框的最大可选数
2006/07/01 Javascript
javascript 文档的编码问题解决
2009/03/01 Javascript
js的for in循环和java里foreach循环的区别分析
2015/01/28 Javascript
JS实现的车标图片提示效果代码
2015/10/10 Javascript
js canvas实现擦除动画
2016/07/16 Javascript
Vue.js组件tree实现省市多级联动
2016/12/02 Javascript
详解JavaScript中js对象与JSON格式字符串的相互转换
2017/02/14 Javascript
详解从新建vue项目到引入组件Element的方法
2017/08/29 Javascript
vue 挂载路由到头部导航的方法
2017/11/13 Javascript
详解Vue快速零配置的打包工具——parcel
2018/01/16 Javascript
在vscode里使用.vue代码模板的方法
2018/04/28 Javascript
node.js实现微信开发之获取用户授权
2019/03/18 Javascript
vue项目打包上传github并制作预览链接(pages)
2019/04/19 Javascript
js实现web调用摄像头 js截取视频画面
2019/04/21 Javascript
vue项目中使用eslint+prettier规范与检查代码的方法
2020/01/16 Javascript
vue-cli3项目升级到vue-cli4 的方法总结
2020/03/19 Javascript
[15:23]教你分分钟做大人:虚空假面
2014/10/30 DOTA
[40:55]DOTA2上海特级锦标赛主赛事日 - 2 败者组第二轮#4Newbee VS Fnatic
2016/03/03 DOTA
[02:39]我与DAC之Newbee.Moogy:从论坛到TI
2018/03/26 DOTA
Python中使用不同编码读写txt文件详解
2015/05/28 Python
python使用fcntl模块实现程序加锁功能示例
2017/06/23 Python
Python绘制KS曲线的实现方法
2018/08/13 Python
django_orm查询性能优化方法
2018/08/20 Python
详解pandas中MultiIndex和对象实际索引不一致问题
2019/07/23 Python
Django分页功能的实现代码详解
2019/07/29 Python
通过实例解析python创建进程常用方法
2020/06/19 Python
中国电子产品外贸网站:MiniIntheBox
2017/02/06 全球购物
学生自我鉴定模板
2013/12/30 职场文书
幼儿园开学报名通知
2015/07/16 职场文书
制定企业培训计划的五大要点!
2019/07/10 职场文书