如何在 PHP Codeigniter 中使用 temp table 从 MSSQL 存储过程中获取结果
How to get result from MSSQL stored procedure with temp table in PHP Codeigniter
我正在使用 Codeigniter 3.1,我想从 Microsoft SQL 服务器中的存储过程中获取结果。但我得不到任何结果
存储过程脚本:
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
我的PHP代码:
$DateAs = "2017/01/02";
$DateTo = "2017/01/03";
$result = $this->db->query("SendPost_All_Periodic '{$DateAs}', '{$DateTo}'");
print_r($publishtime->result_array());
但是当我使用此方法进行正常 select 时,此代码会创建结果,但我无法从 TempTableselect 中获得结果
您在尝试执行代码时是否收到任何错误消息?
根据您提供的代码,您可能会遇到一些问题,调用可能取决于您在配置中使用的数据库驱动程序(例如:pdo)。首先,在您的 print_r
语句中,您正在调用一个看似不存在的变量。因此,请快速尝试一下:
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());
希望这对您有所帮助。如果是这样,让我知道哪个有效。如果没有,请查看这篇 Whosebug 文章是否为您指明了正确的方向:How to call a stored procedure in CodeIgniter?
我正在使用 Codeigniter 3.1,我想从 Microsoft SQL 服务器中的存储过程中获取结果。但我得不到任何结果
存储过程脚本:
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
我的PHP代码:
$DateAs = "2017/01/02";
$DateTo = "2017/01/03";
$result = $this->db->query("SendPost_All_Periodic '{$DateAs}', '{$DateTo}'");
print_r($publishtime->result_array());
但是当我使用此方法进行正常 select 时,此代码会创建结果,但我无法从 TempTableselect 中获得结果
您在尝试执行代码时是否收到任何错误消息?
根据您提供的代码,您可能会遇到一些问题,调用可能取决于您在配置中使用的数据库驱动程序(例如:pdo)。首先,在您的 print_r
语句中,您正在调用一个看似不存在的变量。因此,请快速尝试一下:
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());
希望这对您有所帮助。如果是这样,让我知道哪个有效。如果没有,请查看这篇 Whosebug 文章是否为您指明了正确的方向:How to call a stored procedure in CodeIgniter?