• 技术文章 >后端开发 >php教程

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

    2016-05-17 08:57:10原创608
    【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 '

    ';

    //获取第二个结果集.
    $stmt->nextRowset();
    $rowset_2 = $stmt->fetch();
    print_r($rowset_2);
    echo '

    ';
    $stmt->nextRowset();
    // 获取两个输出类型的参数
    echo $nReturnValue.'

    ';
    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.
    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    上一篇:国外十大最流行的PHP框架排名 下一篇:php字符串截取的简单方法_php技巧
    PHP编程就业班

    相关文章推荐

    • 归纳整理39道PHP面试题(总结分享)• 求一条sql话语。 • 200元现金求cookie的解决方法 • 求解php传数组js解用.该怎么解决 • PHP 四种基本的排序的方法

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网