如何在PHP Codeigniter中使用temp表从MSSQL存储过程中获取结果

如何在PHP Codeigniter中使用temp表从MSSQL存储过程中获取结果,php,sql,sql-server,codeigniter,stored-functions,Php,Sql,Sql Server,Codeigniter,Stored Functions,我正在使用Codeigniter 3.1,我想从Microsoft SQL Server中的存储过程中获得结果。但是我没有得到任何结果 存储过程脚本: ALTER procedure [dbo].[SendPost_All_Periodic] @DateAs nvarchar(10), @DateTo nvarchar(10) as begin DECLARE @temptable TABLE (MsgDate nvarchar(10),Saat tinyint) INSERT

我正在使用Codeigniter 3.1,我想从Microsoft SQL Server中的存储过程中获得结果。但是我没有得到任何结果

存储过程脚本:

ALTER procedure [dbo].[SendPost_All_Periodic]
@DateAs nvarchar(10),
@DateTo nvarchar(10)   
as
begin


 DECLARE @temptable TABLE (MsgDate nvarchar(10),Saat tinyint)

 INSERT INTO @temptable
 SELECT MsgDate,CAST(LEFT(MsgTime, 2) AS int) as Saat2
 FROM  dbo.TMessage
 Where MsgDate>=@DateAs and MsgDate<=@DateTo

 Select Saat,count(Saat)as CountSend from @temptable
 group by Saat
 order by Saat

end

但是,当我使用from这个方法进行普通选择时,这段代码会创建结果,但我无法获得比select from tentable更高的结果。当您尝试执行代码时,是否收到任何错误消息

根据您提供的代码,您可能会遇到一些问题,调用可能取决于您在config ex:pdo中使用的数据库驱动程序。首先,在print\r语句中,您调用了一个似乎不存在的变量。因此,请快速尝试一下:

print_r($result->result_array());
此外,传入参数的方式可能会导致单引号出现问题。尝试一下这两种方法,看看哪一种有效

方法一:

方法二:

希望这能有所帮助。如果是这样,请告诉我哪一个有效。如果没有,请查看这篇Stackoverflow文章是否为您指出了正确的方向:

print_r($result->result_array());
$result = $this->db->query("SendPost_All_Periodic {$DateAs}, {$DateTo}");
print_r($result->result_array());
$result = $this->db->query("EXEC SendPost_All_Periodic @DateAs='$DateAs', @DateTo='$DateTo'");
print_r($result->result_array());