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 相关文章推荐
PHP初学者头疼问题总结
Jul 08 PHP
PHP 数组入门教程小结
May 20 PHP
PHP XML数据解析代码
May 26 PHP
php 获取百度的热词数据的代码
Feb 18 PHP
php采用file_get_contents代替使用curl实例
Nov 07 PHP
php实现向javascript传递数组的方法
Jul 27 PHP
PHP GD库相关图像生成和处理函数小结
Sep 30 PHP
PHP7多线程搭建教程
Apr 21 PHP
php curl上传、下载、https登陆实现代码
Jul 23 PHP
PHP7 echo和print语句实例用法
Feb 15 PHP
php用wangeditor3实现图片上传功能
Aug 22 PHP
thinkphp5.1 框架导入/导出excel文件操作示例
May 25 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
Terran兵种介绍
2020/03/14 星际争霸
smarty+adodb+部分自定义类的php开发模式
2006/12/31 PHP
php获得网站访问统计信息类Compete API用法实例
2015/04/02 PHP
Yii2中关联查询简单用法示例
2016/08/10 PHP
php base64 编码与解码实例代码
2017/03/21 PHP
javascript类继承机制的原理分析
2009/09/12 Javascript
Javascript 日期处理之时区问题
2009/10/08 Javascript
javascript中parentNode,childNodes,children的应用详解
2013/12/17 Javascript
js实现的标题栏新消息闪烁提示效果
2014/06/06 Javascript
jQuery实现HTML5 placeholder效果实例
2014/12/09 Javascript
jQuery对象与DOM对象之间的相互转换
2015/03/03 Javascript
ionic js 复选框 与普通的 HTML 复选框到底有没区别
2016/06/06 Javascript
全面解析JS字符串和正则表达式中的match、replace、exec等函数
2016/07/01 Javascript
canvas实现十二星座星空图
2017/02/14 Javascript
vue.js数据绑定的方法(单向、双向和一次性绑定)
2017/07/13 Javascript
Node在Controller层进行数据校验的过程详解
2020/08/28 Javascript
在vue中实现清除echarts上次保留的数据(亲测有效)
2020/09/09 Javascript
如何使用RoughViz可视化Vue.js中的草绘图表
2021/01/30 Vue.js
Python使用matplotlib模块绘制图像并设置标题与坐标轴等信息示例
2018/05/04 Python
Python+selenium 获取浏览器窗口坐标、句柄的方法
2018/10/14 Python
利用nohup来开启python文件的方法
2019/01/14 Python
Python中的几种矩阵乘法(小结)
2019/07/10 Python
python遍历文件目录、批量处理同类文件
2019/08/31 Python
wxpython自定义下拉列表框过程图解
2020/02/14 Python
有趣的Python图片制作之如何用QQ好友头像拼接出里昂
2020/04/22 Python
自学python用什么系统好
2020/06/23 Python
EMU Australia澳大利亚官网:澳大利亚本土雪地靴品牌
2019/07/24 全球购物
将"引用"作为函数参数有哪些特点
2013/04/05 面试题
会计电算一体化个人简历的自我评价
2013/10/15 职场文书
社区学雷锋活动策划方案
2014/01/30 职场文书
爱岗敬业演讲稿
2014/05/05 职场文书
学生党员一帮一活动总结
2014/07/08 职场文书
查摆问题自我剖析材料
2014/08/18 职场文书
Python-OpenCV教程之图像的位运算详解
2021/06/21 Python
我的收音机情缘
2022/04/05 无线电
java中为什么说子类的构造方法默认访问的是父类的无参构造方法
2022/04/13 Java/Android