我使用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'
我真的不知道我做错了什么。有人可以帮助我吗?
答案 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
。