如何使用SQL SERVER在CodeIgniter中调用存储过程

时间:2015-07-22 19:56:58

标签: php sql-server codeigniter stored-procedures sqlsrv

我使用Codeigniter和SQL服务器作为我的数据库来构建我的应用程序(我使用SQLSRV PHP扩展来连接到SQL)。当我尝试调用存储过程时会出现问题:

$query = $this->db->query(
          "EXECUTE verificacion_fechas '".$codigo."',".$estado.",'".$llave_maestra."','".$fecha_actual."'"); 

我尝试使用较少数据创建查询的另一种方法如下,但是,它产生错误:

Error Number: 01000 [Microsoft][ODBC Driver 11 for SQL Server][SQL Server]Ejecutando SQL directamente, sin cursor. EXECUTE provando15 34,2,'key05','2015-07-22'

我真的不知道我做错了什么。有人可以帮助我吗?

3 个答案:

答案 0 :(得分:1)

删除“执行”一词,它将起作用。

$query = $this->db->query(
      "verificacion_fechas '".$codigo."',".$estado.",'".$llave_maestra."','".$fecha_actual."'");

答案 1 :(得分:0)

以下是如何在codeigniter中调用MYSQL STORED PROCEDURE的示例

$this->db->query('CALL procedure_name());

答案 2 :(得分:0)

这是我的解决方法:

第一种(如果您不使用变量);

$query=$this->MSSQL->query("EXEC ProcedureName");

第二种方式(如果使用变量);

$query =$this->MSSQL->query("EXEC ProcedureName '$var1','$var2','$var3' ");

$query =$this->MSSQL->query("EXEC ProcedureName @varName1='$var1',@varName2='$var2',@varName3='$var3' ");

注意:如果您得到空数组之类的结果,请在过程的BEGIN之后添加SET NOCOUNT ON