PHP调用MsSQL Server 2012存储过程获取多结果集(包含output参数)的详解

 更新时间:2013年07月03日 10:38:56   作者:  
本篇文章是对PHP调用MsSQL Server 2012存储过程获取多结果集(包含output参数)的方法进行了详细的分析介绍,需要的朋友参考下
【PHP Source Code】:
复制代码 代码如下:

$dbh = new PDO('sqlsrv:server=连接地址;Database=数据库名', 用户名, 密码);
try {
 $procName = "P_Test_GetMixData";
 $stmt = $dbh->prepare("EXEC $procName ?, ?, ?");
 $nReturnValue = 0;
 $strReturnValue = "";
 $strSearchValue = "abandonship";
 $stmt->bindParam(1, $nReturnValue, PDO::PARAM_INT | PDO::PARAM_INPUT_OUTPUT, PDO::SQLSRV_PARAM_OUT_DEFAULT_SIZE);
 $stmt->bindParam(2, $strReturnValue, PDO::PARAM_STR | PDO::PARAM_INPUT_OUTPUT, 10);
 $stmt->bindParam(3, $strSearchValue , PDO::PARAM_STR);
 $stmt->execute();

 //获取第一个结果集.
 $rowset_1 = $stmt->fetch(PDO::FETCH_ASSOC);
 print_r($rowset_1);
 echo '<br><br>';

 //获取第二个结果集.
 $stmt->nextRowset();
 $rowset_2 = $stmt->fetch();
 print_r($rowset_2);
 echo '<br><br>';
 $stmt->nextRowset();
 // 获取两个输出类型的参数
 echo $nReturnValue.'<br><br>';
 echo $strReturnValue;
} catch (Exception $e) {
 echo $e->getMessage();
}

【SQL PROCEDURE】:
复制代码 代码如下:

/**
* 用于测试PDO调用MsSQLServer2012存储过程获取复合结果集Demo
* Code CreateBy abandonship 2012.10.11
**/
CREATE PROCEDURE [dbo].[P_Test_GetMixData](
 @Message_1 tinyint output,
 @Messgae_2 varchar(10) output,
 @SearchValue varchar(50)
) As
set nocount on

 set @Message_1 = 123
 set @Messgae_2 = 'Hi,there!This is abandonship!'
 select * from _T1 where col1 like '%'+@SearchValue+'%'
 select * from _T2 where col1 like '%'+@SearchValue+'%'
set nocount off

【一些要注意的问题】:当bindParam中存在需要输出类型的参数时,必须包含长度($length)。
【备注】:$length: An optional (integer) length of the data type. You can specify PDO::SQLSRV_PARAM_OUT_DEFAULT_SIZE to indicate the default size when using PDO::PARAM_INT or PDO::PARAM_BOOL in $data_type.

相关文章

  • PHP生成器功能与用法实例分析

    PHP生成器功能与用法实例分析

    这篇文章主要介绍了PHP生成器功能与用法,结合实例形式分析了PHP生成器的概念、功能、使用方法及相关操作注意事项,需要的朋友可以参考下
    2018-03-03
  • 聊聊PHP中die()和sleep()函数的用法

    聊聊PHP中die()和sleep()函数的用法

    这篇文章通过代码讲解了PHP中die()和sleep()函数的具体用法,文中给大家介绍的通俗易懂,零基础也能看得懂,对大家的学习或工作具有一定的参考价值
    2021-09-09
  • php中的字符编码转换函数用法示例

    php中的字符编码转换函数用法示例

    这篇文章主要介绍了php中的字符编码转换函数用法示例,非常具有实用价值,需要的朋友可以参考下
    2014-10-10
  • 解析PHP中一些可能会被忽略的问题

    解析PHP中一些可能会被忽略的问题

    本篇文章是对PHP中一些可能会忽略的问题进行了详细的分析介绍所,需要的朋友参考下
    2013-06-06
  • PHP脚本设置无限执行时间的四种方法

    PHP脚本设置无限执行时间的四种方法

    为 PHP 脚本设置无限执行时间是一个在特定场景下可能需要的操作,比如执行长时间运行的后台任务、数据迁移、大批量数据处理等,本文给大家介绍了为PHP脚本设置无限执行时间的四种方法,需要的朋友可以参考下
    2024-09-09
  • php限制上传文件类型并保存上传文件的方法

    php限制上传文件类型并保存上传文件的方法

    这篇文章主要介绍了php限制上传文件类型并保存上传文件的方法,涉及php针对上传文件的常用操作技巧,非常具有实用价值,需要的朋友可以参考下
    2015-03-03
  • PHP二维数组分页2种实现方法解析

    PHP二维数组分页2种实现方法解析

    这篇文章主要介绍了PHP二维数组分页2种实现方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-07-07
  • php引用传值实例详解学习

    php引用传值实例详解学习

    在php中使用引用赋值只需要在原始对象前加个&就可以了,具体休怎么用呢,可以看下文解释和实例
    2013-11-11
  • php+ajax无刷新分页实例详解

    php+ajax无刷新分页实例详解

    这篇文章主要介绍了php+ajax无刷新分页的方法,结合实例形式较为详细的分析了php数据查询结合ajax数据交互实现无刷新分页效果的相关技巧,需要的朋友可以参考下
    2015-12-12
  • 写出高质量的PHP程序

    写出高质量的PHP程序

    这是一个很老的话题了,现在的PHP程序员都在追求所谓的高性能,但高性能并不代表是高质量,什么是高质量的PHP程序呢?我认为,高质量的PHP程序首先得具备以下的要素
    2012-02-02

最新评论