源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

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

  • 时间:2022-07-01 22:08 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:PHP调用MsSQL Server 2012存储过程获取多结果集(包含output参数)的详解
[b]【PHP Source Code】: [/b]
[u]复制代码[/u] 代码如下:
$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(); }
[b]【SQL PROCEDURE】: [/b]
[u]复制代码[/u] 代码如下:
/** * 用于测试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)。 [b]【备注】:[/b]$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.
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部