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 相关文章推荐
教你IIS6的PHP最佳配置方法
Sep 05 PHP
使用php重新实现PHP脚本引擎内置函数
Mar 06 PHP
学习discuz php 引入文件的方法DISCUZ_ROOT
Jun 21 PHP
memcached 和 mysql 主从环境下php开发代码详解
May 16 PHP
php中将地址生成迅雷快车旋风链接的代码[测试通过]
Apr 20 PHP
让Nginx支持ThinkPHP的URL重写和PATHINFO的方法分享
Aug 08 PHP
解决文件名解压后乱码的问题 将文件名进行转码的代码
Jan 10 PHP
PHP实现递归复制整个文件夹的类实例
Aug 03 PHP
Zend Framework入门教程之Zend_Config组件用法详解
Dec 09 PHP
Thinkphp通过一个入口文件如何区分移动端和PC端
Apr 18 PHP
Win7环境下Apache连接MySQL提示连接已重置的解决办法
May 09 PHP
Laravel5.5+ 使用API Resources快速输出自定义JSON方法详解
Apr 06 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
php数组一对一替换实现代码
2012/08/31 PHP
CI(CodeIgniter)框架配置
2014/06/10 PHP
PHP实用函数分享之去除多余的0
2015/02/06 PHP
PHP+Redis 消息队列 实现高并发下注册人数统计的实例
2018/01/29 PHP
PHP添加PNG图片背景透明水印操作类定义与用法示例
2019/03/12 PHP
laravel框架使用FormRequest进行表单验证,验证异常返回JSON操作示例
2020/02/18 PHP
PHP项目多语言配置平台实现过程解析
2020/05/18 PHP
ajax 缓存 问题 requestheader
2010/08/01 Javascript
Node.js实现Excel转JSON
2015/04/24 Javascript
使用JQuery在线制作ppt并在线演示源码特效
2015/09/08 Javascript
websocket+node.js实现实时聊天系统问题咨询
2017/05/17 Javascript
vue router学习之动态路由和嵌套路由详解
2017/09/21 Javascript
SpringBoot+Vue前后端分离,使用SpringSecurity完美处理权限问题的解决方法
2018/01/09 Javascript
基于react后端渲染模板引擎noox发布使用
2018/01/11 Javascript
微信小程序chooseImage的用法(从本地相册选择图片或使用相机拍照)
2018/08/22 Javascript
浅谈React之状态(State)
2018/09/19 Javascript
在vue中使用setInterval的方法示例
2019/04/16 Javascript
JS中封装axios来管控api的2种方式
2019/09/11 Javascript
layUI的验证码功能及校验实例
2019/10/25 Javascript
[43:48]Ti4正赛第一天 VG vs NEWBEE 2
2014/07/19 DOTA
[48:26]VGJ.S vs infamous Supermajor 败者组 BO3 第二场 6.4
2018/06/05 DOTA
[58:59]完美世界DOTA2联赛PWL S3 access vs CPG 第一场 12.13
2020/12/16 DOTA
约瑟夫问题的Python和C++求解方法
2015/08/20 Python
python绘制热力图heatmap
2020/03/23 Python
Tkinter中复选菜单是否被选中的判断与设置方式
2020/03/04 Python
Python使用struct处理二进制(pack和unpack用法)
2020/11/12 Python
Python3利用openpyxl读写Excel文件的方法实例
2021/02/03 Python
浅析数据存储的三种方式 cookie sessionstorage localstorage 的异同
2020/06/04 HTML / CSS
HTML5 SEO优化的一些建议
2020/08/27 HTML / CSS
日本整理专家Marie Kondo的官方在线商店:KonMari
2020/06/29 全球购物
春节超市活动方案
2014/08/14 职场文书
报考公务员诚信承诺书
2014/08/29 职场文书
观看《周恩来的四个昼夜》思想汇报
2014/09/12 职场文书
青岛海底世界导游词
2015/02/11 职场文书
Windows Server 2012 R2服务器安装与配置的完整步骤
2022/07/15 Servers
详解CSS中postion和opacity及cursor的特性
2022/08/14 HTML / CSS