San*_*alp 14 php mysql stored-procedures cakephp
我正在尝试在Cakephp中创建存储过程.我在MYSQL中创建了Procedure并在AppModel.php中创建了全局函数来命中过程.AppModel中的函数是sProcedure.现在我有两个条件,我可能有变量从程序返回或可能有直接结果集,例如.我为Pagination创建了.虽然它射击我的程序但没有返回任何结果.我的功能是否需要修改?
public function sProcedure($name = NULL, $inputParameter = array(), $outputParameter = array()) {
$this->begin();
$parameter = "";
$outputParam = "";
foreach ($inputParameter as $params) {
$parameter .= $parameter == "" ? " '$params' " : ", '$params' ";
}
if (count($outputParameter) > 0) {
foreach ($outputParameter as $prm) {
$outputParam .= $outputParam == "" ? " @$prm " : ", @$prm ";
}
}
$parameter = ($outputParam) ? $parameter . ", " . $outputParam : $parameter;
$this->query("CALL `$name`($parameter);");
$result = $this->query("SELECT $outputParam");
$this->commit();
return $result;
}
$sel_data = $this->ArticleNews->sProcedure("update_blank", $input_prameter, $output);
debug($sel_data);
Run Code Online (Sandbox Code Playgroud)
sit*_*lge 13
打破片段
$this->query("CALL `$name`($parameter);");
Run Code Online (Sandbox Code Playgroud)
调用存储过程.让我们假设程序的主体很简单SELECT
SELECT table.* FROM table;
Run Code Online (Sandbox Code Playgroud)
此过程返回结果集.快速浏览一下您提供的代码
$this->query("CALL `$name`($parameter);");
Run Code Online (Sandbox Code Playgroud)
$proc_result = $this->query("CALL `$name`($parameter);");
$proc_data = array();
if (false !== $proc_result)
{
while ($proc_row = mysqli_fetch_array($proc_result))
{
$proc_data[] = $proc_row;
}
}
if (!empty($proc_data))
{
//do whatever with procedure data
}
Run Code Online (Sandbox Code Playgroud)
相关文档:connector-cpp-tutorials-stored-routines-statements
| 归档时间: |
|
| 查看次数: |
6893 次 |
| 最近记录: |