如何使用Codeigniter中的参数调用MSSQL存储过程

时间:2017-03-06 13:30:23

标签: sql-server codeigniter stored-procedures

我想在我的Codeigniter网站上调用存储过程,但我不能,我尝试了很多解决方案,但我不能。 我使用Microsoft SQL Server 2012和Codeigniter 3.1和sqlsrv dirver以及iis 8.5和php 5.6

我的存储过程代码:

alter PROCEDURE [dbo].[count_message]
        @username smallint


AS  SET NOCOUNT ON;

return isnull((select count(*) from dbo.message where ms_user=1 or ms_user=@username),0)

3 个答案:

答案 0 :(得分:1)

我使用此代码并且效果很好

$result = $this->db->query("SE_Export_Top_Post N'{$searchId}', N'{$search}'")

答案 1 :(得分:0)

试试这个:

$this->db->query("exec count_message @username='example'")

答案 2 :(得分:0)

我改变了我的代码,但我无法获得任何输出

我改变了我的存储过程:

alter PROCEDURE [dbo].[count_message]
        @username smallint,
        @num Int = NULL output

--AS    SET NOCOUNT ON;
 as
   begin

   set @num = isnull((select count(*) 
                      from dbo.sd_message 
                      where ms_user=1 or ms_user=@username),0)

   return @num

END
GO

并在PHP / Codeigniter中使用此代码:

$result = $this->db->query("exec count_message @username='2600'");
echo 'row Num: '.$result;