2016-08-02 81 views
0

我想调用我的存储过程只接受一个整型输入参数,并在cakephp框架中返回多行。调用MySQL存储过程并在CAKEPHP中显示其数据

存储过程:

PROCEDURE `Salary`(IN sysid int) 
BEGIN 
SELECT name, lastName, Salary, Month From SalaryData 
where Userid = sysid; 
END 

Model.PHP:

<?php 
class SalaryModel extends AppModel 
{ 
    public function sProcedure($testId) 
{ 
    $result=$this->query("CALL Salary($testId);"); 
    return $result; 
} 
}?> 

我的控制器的代码是:

public function Procdata($testId) { 
    $result=$this->Systemstate->sProcedure($testId); 
} 

现在,谁能告诉我如何显示查询内容“view.ctp” ??

我希望我的模型是正确的。

在此先感谢

+0

为什么你想使用存储过程?为什么不使用框架生成查询? –

+0

,因为它的一个复杂的查询,包括最大功能等,并在它所产生的一切后返回作为从存储过程的选择查询 –

+0

@Nomanuddin请只标记与您正在使用的相关版本的CakePHP的问题。你在使用CakePHP 1或2吗? – drmonkeyninja

回答

0

有许多方法可以在cakephp中调用存储过程。但最好的方法是将其作为查询来执行,而不是将其作为模型进行烘焙,因为直到我的搜索,无法构建或烘焙复杂的存储过程。

所以,这样我解决我的问题:

我的控制器代码:

public function Procdata($testId) { 
    $result=$this->Systemstate->sProcedure($testId); 
    $this->set('data',$result); 
} 

我的显示部分View.CTP

print_r($data); 
1

MySQL存储过程通常不会返回一些结果。 你需要开发功能,而不是返回一些价值。 了解更多here

+0

好的如果我使用一个函数,任何建议如何调用和显示cakephp中的内容? –