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

Calling MySQL stored procedure and Displaying its data in CAKEPHP

我想调用我的存储过程,它只接受一个整数输入参数和 return 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" 中显示查询内容??

希望我的模型是正确的。

提前致谢

MySQL 存储过程通常不会 return 某些结果。 您需要开发 FUNCTION 而不是 return 一些值。 阅读更多 here.

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

所以,我通过这种方式解决了我的问题:

我的控制器代码是:

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

我的显示部分View.CTP

   print_r($data);