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 相关文章推荐
php pcntl_fork和pcntl_fork 的用法
Apr 13 PHP
记录mysql性能查询过程的使用方法
May 02 PHP
2个Codeigniter文件批量上传控制器写法例子
Jul 25 PHP
php删除左端与右端空格的方法
Nov 29 PHP
PHP微信开发之有道翻译
Jun 23 PHP
微信公众号判断用户是否已关注php代码解析
Jun 24 PHP
深入解析Laravel5.5中的包自动发现Package Auto Discovery
Sep 13 PHP
php实现每日签到功能
Nov 29 PHP
Laravel中正确地返回HTTP状态码方法示例
Sep 10 PHP
Laravel 手动开关 Eloquent 修改器的操作方法
Dec 30 PHP
Laravel 手动开关 Eloquent 修改器的操作方法
Dec 30 PHP
TP - 比RBAC更好的权限认证方式(Auth类认证)
Mar 09 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
phpcms模块开发之swfupload的使用介绍
2013/04/28 PHP
支持中文和其他编码的php截取字符串函数分享(截取中文字符串)
2014/03/13 PHP
利用PHP获取网站访客的所在地位置
2017/01/18 PHP
Yii框架Session与Cookie使用方法示例
2019/10/14 PHP
laravel 之 Eloquent 模型修改器和序列化示例
2019/10/17 PHP
动感效果的TAB选项卡jquery 插件
2011/07/09 Javascript
JS 两日期相减,获得天数的小例子(兼容IE,FF)
2013/07/01 Javascript
JavaScript避免代码的重复执行经验技巧分享
2014/04/17 Javascript
window resize和scroll事件的基本优化思路
2014/04/29 Javascript
jquery中each方法示例和常用选择器
2014/07/08 Javascript
javascript Slip.js实现整屏滑动的手机网页
2015/11/25 Javascript
Angular Module声明和获取重载实例代码
2016/09/14 Javascript
jquery.tableSort.js表格排序插件使用方法详解
2020/08/12 Javascript
VUE2.0+ElementUI2.0表格el-table实现表头扩展el-tooltip
2018/11/30 Javascript
Vue中的基础过渡动画及实现原理解析
2018/12/04 Javascript
vue-router之实现导航切换过渡动画效果
2019/10/31 Javascript
vscode 使用Prettier插件格式化配置使用代码详解
2020/08/10 Javascript
解决vue加scoped后就无法修改vant的UI组件的样式问题
2020/09/07 Javascript
[04:28]2014DOTA2国际邀请赛 采访小兔子LGD挺进钥匙体育馆
2014/07/14 DOTA
python使用PyV8执行javascript代码示例分享
2013/12/04 Python
简单实现python进度条脚本
2017/12/18 Python
python 画函数曲线示例
2019/12/04 Python
Python3.5 win10环境下导入kera/tensorflow报错的解决方法
2019/12/19 Python
HTML5如何为形状图上颜色怎么绘制具有颜色和透明度的矩形
2014/06/23 HTML / CSS
英国男女豪华配饰和礼品网站:Black.co.uk
2020/02/28 全球购物
中间件分为哪几类
2012/03/14 面试题
旅游项目开发策划书
2014/01/18 职场文书
销售业务员岗位职责
2014/01/29 职场文书
舞蹈毕业生的自我评价
2014/03/05 职场文书
市场营销调查计划书
2014/05/02 职场文书
俞敏洪一分钟演讲稿
2014/08/26 职场文书
乡镇党员干部群众路线对照检查材料思想汇报
2014/09/28 职场文书
2015年社区工会工作总结
2015/05/26 职场文书
离职证明格式样本
2015/06/12 职场文书
css3带你实现3D转换效果
2022/02/24 HTML / CSS
vue判断按钮是否可以点击
2022/04/09 Vue.js