PHP调用MySQL存储过程并返回值的方法


Posted in PHP onDecember 26, 2014

本文实例讲述了php中调用执行mysql存储过程然后返回由存储过程返回的值,分享给大家供大家参考。具体分析如下:

调用存储过程的方法.

a。如果存储过程有 IN/INOUT参数,声明一个变量,输入参数给存储过程,该变量是一对,一个php变量,也可以不必,只是没有php变量时,没有办法进行动态输入,一个Mysql变量.

b。如果存储过程有OUT变量,声明一个Mysql变量,mysql变量的声明比较特殊,必须让mysql服务器知道此变量的存在,其实也就是执行一条mysql语句,入set @mysqlvar=$phpvar ;

c。使用mysql_query()/mysql_db_query()执行mysql 变量声明语句。

代码如下:

mysql_query("set @mysqlvar=$pbpvar");

这样,在mysql服务器里面就有一个变量,@mysqlar,如果时IN参数,那么其值可以有phpar传入.

例,利用mysqli函数实例,我们先可在mysql创建一个存储过程,代码如下:

mysql> delimiter // 

mysql> CREATE PROCEDURE employee_list (OUT param1 INT) 

    -> BEGIN 

    ->   SELECT COUNT(*) INTO param1 FROM t; 

    -> END 

    -> // 

Query OK, 0 rows affected (0.00 sec)

然后在php中如下写,代码如下:
<h1>Employee listing</h1> 

<form method="post" > 

<p>Enter Department ID: 

<input type="text" name="dept_id" size="4"> 

<input type="submit" name="submit" value="submit"><p> 

</form> 

<?php 

$hostname = "localhost"; 

$username = "root"; 

$password = "secret"; 

$database = "prod"; 

if (IsSet ($_POST['submit'])) { 

     $dbh = new mysqli($hostname, $username, $password, $database); 

     /* check connection */ 

     if (mysqli_connect_errno()) { 

          printf("Connect failed: %sn", mysqli_connect_error()); 

          exit (); 

     } 

     $dept_id = $_POST['dept_id']; 

     if ($result_set = $dbh->query("call employee_list( $dept_id )")) { 

          print ('<table border="1" width="30%"> <tr> '. 

               '<td>Employee_id</td><td>Surname</td><td>Firstname</td></tr>');

          while ($row = $result_set->fetch_object()) { 

               printf("<tr><td>%s</td><td>%s</td><td>%s</td></tr>n",  

                      $row->employee_id, $row->surname, $row->firstname); 

          } 

     } else { 

          printf("<p>Error:%d (%s) %sn", mysqli_errno($dbh),  

                 mysqli_sqlstate($dbh), mysqli_error($dbh)); 

     } 

     print ("</table> "); 

     $dbh->close(); 

} 

?>

核心代码就是,代码如下:
$result_set = $dbh->query("call employee_list( $dept_id )")

这句employee_list是我们的mysql存储过程.

希望本文所述对大家的php程序设计有所帮助。

PHP 相关文章推荐
一个数据采集类
Feb 14 PHP
用PHP的ob_start();控制您的浏览器cache!
Feb 14 PHP
PHP 观察者模式的实现代码
May 10 PHP
利用phpExcel实现Excel数据的导入导出(全步骤详细解析)
Nov 26 PHP
php环境下利用session防止页面重复刷新的具体实现
Jan 09 PHP
浅谈php优化需要注意的地方
Nov 27 PHP
smarty中post用法实例
Nov 28 PHP
php网页病毒清除类
Dec 08 PHP
PHP使用反射机制实现查找类和方法的所在位置
Apr 22 PHP
Yii净化器CHtmlPurifier用法示例(过滤不良代码)
Jul 15 PHP
php数据序列化测试实例详解
Aug 12 PHP
网站被恶意镜像怎么办 php一段代码轻松搞定(全面版)
Oct 23 PHP
php+ajax实时输入自动搜索匹配的方法
Dec 26 #PHP
windows下配置php5.5开发环境及开发扩展
Dec 25 #PHP
PHP中require和include路径问题详解
Dec 25 #PHP
Yii框架调试心得--在页面输出执行sql语句
Dec 25 #PHP
Web程序工作原理详解
Dec 25 #PHP
php更新mysql后获取改变行数的方法
Dec 25 #PHP
php常见的魔术方法详解
Dec 25 #PHP
You might like
Yii中Model(模型)的创建及使用方法
2015/12/28 PHP
Laravel框架查询构造器简单示例
2019/05/08 PHP
使用自定义setTimeout和setInterval使之可以传递参数和对象参数
2009/04/24 Javascript
javascript eval(func())使用示例
2013/12/05 Javascript
编写简单的jQuery提示插件
2014/12/21 Javascript
JS实现很酷的水波文字特效实例
2015/02/26 Javascript
jquery预加载图片的方法
2015/05/27 Javascript
json格式数据的添加,删除及排序方法
2016/01/21 Javascript
使用BootStrap建立响应式网页——通栏轮播图(carousel)
2016/12/21 Javascript
80%应聘者都不及格的JS面试题
2017/03/21 Javascript
移动端web滚动分页的实现方法
2017/05/05 Javascript
微信小程序基于本地缓存实现点赞功能的方法
2017/12/18 Javascript
Vue.js实现的计算器功能完整示例
2018/07/11 Javascript
如何解决vue2.0下IE浏览器白屏问题
2018/09/13 Javascript
监控Nodejs的性能实例代码
2019/07/02 NodeJs
vue中的 $slot 获取插槽的节点实例
2019/11/12 Javascript
微信小程序实现音频文件播放进度的实例代码
2020/03/02 Javascript
vue+axios全局添加请求头和参数操作
2020/07/24 Javascript
vue深度监听(监听对象和数组的改变)与立即执行监听实例
2020/09/04 Javascript
跟老齐学Python之关于循环的小伎俩
2014/10/02 Python
Python对象体系深入分析
2014/10/28 Python
简述:我为什么选择Python而不是Matlab和R语言
2017/11/14 Python
python导入csv文件出现SyntaxError问题分析
2017/12/15 Python
Django之使用celery和NGINX生成静态页面实现性能优化
2019/10/08 Python
Python计算机视觉里的IOU计算实例
2020/01/17 Python
使用python实现名片管理系统
2020/06/18 Python
python 如何快速复制序列
2020/09/07 Python
python 动态绘制爱心的示例
2020/09/27 Python
倩碧美国官网:Clinique美国
2016/07/20 全球购物
大学生自荐书范文
2013/12/10 职场文书
大专生找工作自荐书
2014/06/10 职场文书
光学与应用专业毕业生求职信
2014/09/01 职场文书
怎样写离婚协议书
2014/09/10 职场文书
美容院合作经营协议书
2014/10/10 职场文书
新郎新娘答谢词
2015/01/04 职场文书
新闻稿件写作技巧
2015/07/18 职场文书