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 相关文章推荐
PHP5中使用DOM控制XML实现代码
May 07 PHP
无需重新编译php加入ftp扩展的解决方法
Feb 07 PHP
使用swoole扩展php websocket示例
Feb 13 PHP
PHP小教程之实现双向链表
Jun 12 PHP
PHP中可以自动分割查询字符的Parse_str函数使用示例
Jul 25 PHP
PHP实现二叉树的深度优先与广度优先遍历方法
Sep 28 PHP
Linux系统下使用XHProf和XHGui分析PHP运行性能
Dec 08 PHP
Windows2003下php5.4安装配置教程(Apache2.4)
Jun 30 PHP
PHP面向对象五大原则之开放-封闭原则(OCP)详解
Apr 04 PHP
PHP SPL 被遗落的宝石【SPL应用浅析】
Apr 20 PHP
PHP实现的日历功能示例
Sep 01 PHP
laravel withCount 统计关联数量的方法
Oct 10 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
Linux下 php5 MySQL5 Apache2 phpMyAdmin ZendOptimizer安装与配置[图文]
2008/11/18 PHP
PHP使用pear实现mail发送功能 windows环境下配置pear
2016/04/15 PHP
php+Ajax无刷新验证用户名操作实例详解
2019/03/04 PHP
类似GMAIL的Ajax信息反馈显示
2010/02/16 Javascript
javascript smipleChart 简单图标类
2011/01/12 Javascript
善用事件代理,警惕闭包的性能陷阱。
2011/01/20 Javascript
jquery中:input和input的区别分析
2011/07/13 Javascript
再谈querySelector和querySelectorAll的区别与联系
2012/04/20 Javascript
Javacript实现颜色梯度变化和渐变的效果代码
2013/05/31 Javascript
jQuery中document与window以及load与ready 区别详解
2014/12/29 Javascript
js实现跟随鼠标移动且带关闭功能的图片广告实例
2015/02/26 Javascript
JavaScript动态添加列的方法
2015/03/25 Javascript
JavaScript中的toLocaleDateString()方法使用简介
2015/06/12 Javascript
关于获取DIV内部内容报错的原因分析及解决办法
2016/01/29 Javascript
jquery单击事件和双击事件冲突解决方案
2016/03/02 Javascript
js实现页面a向页面b传参的方法
2016/05/29 Javascript
js控制文本框禁止输入特殊字符详解
2017/04/07 Javascript
jquery中$.fn和图片滚动效果实现的必备知识总结
2017/04/21 jQuery
通过构造函数实例化对象的方法
2017/06/28 Javascript
[00:18]天涯墨客三技能展示
2018/08/25 DOTA
python用字典统计单词或汉字词个数示例
2014/04/22 Python
python实现用户登录系统
2016/05/21 Python
Python实现随机生成手机号及正则验证手机号的方法
2018/04/25 Python
浅谈Python线程的同步互斥与死锁
2020/03/22 Python
python小程序之4名牌手洗牌发牌问题解析
2020/05/15 Python
Opencv+Python识别PCB板图片的步骤
2021/01/07 Python
采用专利算法搜索最廉价的机票:CheapAir
2016/09/10 全球购物
英国HYPE双肩包官网:英国本土时尚潮牌
2018/09/26 全球购物
小学教师的个人自我鉴定
2013/10/24 职场文书
学院书画协会部门职责
2013/11/28 职场文书
小学生自我评价范文
2014/01/25 职场文书
文明生主要事迹
2014/05/25 职场文书
献爱心标语
2014/06/21 职场文书
音乐教师求职信
2014/06/28 职场文书
党性心得体会
2014/09/03 职场文书
父亲节寄语大全
2015/02/27 职场文书