调用MySQL存储过程并在CAKEPHP中显示其数据

时间:2016-08-02 14:31:46

标签: php cakephp cakephp-2.0 cakephp-2.1

我想调用我的存储过程,它只接受一个整数输入参数并在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);
 }

现在,任何人都可以建议我如何在&#34; view.ctp&#34; ??

中显示查询内容

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

提前致谢

2 个答案:

答案 0 :(得分:1)

MySQL存储过程通常不会返回一些结果。 您需要开发FUNCTION来返回一些值。 阅读更多here

答案 1 :(得分:0)

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

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

我的控制器代码是:

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

我的显示部分View.CTP

   print_r($data);