Php Codeigniter-SQL Server 2008:如何在存储过程中获取参数输出

Php Codeigniter-SQL Server 2008:如何在存储过程中获取参数输出,php,sql-server,codeigniter,Php,Sql Server,Codeigniter,我在SQLServer2008中有一个过程 CREATE PROCEDURE dbo.testing @parm varchar(10), @parmOUT varchar(30) OUTPUT AS BEGIN SELECT @parmOUT = 'parm 1 ' + @parm END 我有一个查询来访问Codeigniter frameword中的这个过程。 我使用sqlsrv_驱动程序数据库 $param1 = 'test'; $param2 = '1'; $

我在SQLServer2008中有一个过程

CREATE PROCEDURE dbo.testing
    @parm varchar(10),
    @parmOUT varchar(30) OUTPUT
AS
BEGIN
   SELECT @parmOUT = 'parm 1 ' + @parm
END 
我有一个查询来访问Codeigniter frameword中的这个过程。 我使用sqlsrv_驱动程序数据库

$param1 = 'test';
$param2 = '1';
$this->db->query("dbo.testing ?,  ?", array($param1, $param2)); 
我已执行该过程,但无法检索第二个参数值($param2)

有人知道要得到第二个参数值吗


感谢您在存储过程中传递了一个输入参数,并指定了一个输出参数。因此,应修改SP,如下所示

ALTER PROCEDURE dbo.testing
@parm varchar(10),
@parmOUT varchar(30) OUTPUT
AS
BEGIN
SELECT  'parm 1 ' + @parm
END  
现在,要执行上述SP,只需传递一个输入参数

 declare @out varchar(30)
 exec testing 'test', @parmOUT=@out OUTPUT
您只需按以下方式检索结果:

 param1test
没有可以从SP检索的第二个参数。您将获得的唯一值是在select查询中指定的值。

$sql='DECLARE@RETURNV VARCHAR(20)
$sql = 'DECLARE @RETURNV VARCHAR(20)
EXEC dbo.testing ?, @parmOUT= @RETURNV OUTPUT
SELECT @RETURNV AS RETURNV';
$param = array(
  "This is first param"
);
$temp = $this->db->query($sql, $param);
$result = $temp->result_array();
echo "<pre>".print_r($result, true)."</pre>";
EXEC dbo.testing?,@parmOUT=@RETURNV输出 选择@RETURNV作为RETURNV'; $param=数组( “这是第一个参数” ); $temp=$this->db->query($sql,$param); $result=$temp->result_array(); 回显“.print_r($result,true)。”;
谢谢您的回答,但查询后没有结果值。请您更具体地说明在执行存储过程时需要得到什么结果谢谢您的回答。。。我想在php中将输出参数转换为变量$param2,not@out in query.@MochZawaruddinAbdullah:我不知道如何在PHP中实现这一点,但我编写的exec语句只检索输出参数。为了存储输出值,您需要声明一个带有output关键字的变量,然后将该值赋给itIt@MochZawaruddinAbdullah,这对您所在的社区会有帮助回答你是如何解决的。每当你回答时,请试着解释一下,这样每个人都能从你的回答中得到你想要表达的东西。