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