0

我在调用query()数据库时收到一个奇怪的错误。这通常不会成为问题,只是查询调用似乎将我重定向到 500 服务器错误页面并且没有执行我的其余代码。

无论错误如何,此 PHP 都会在 AJAX 调用期间执行,这意味着我无法返回包含错误的格式正确的 json 字符串,因为 CakePHP 正在重定向。

一种解决方法是在出现错误时仅解析来自服务器的大 HTML 响应,并使用 javascript 找出问题所在并正确显示它,但我更愿意从后端返回一个播放良好的小 json 字符串使用我已有的代码。

这是我的电话:

$this->FileUpload->query('exec sproc_runjob_ProcessTests', false);

任何帮助将非常感激。提前致谢!

4

1 回答 1

1

正如bfavaretto上面提到的,正确的答案是在 try catch 中包围查询行。

这是我使用的代码:

try{
    $this->dbParent->FileUpload->query('exec sproc_runjob_ProcessTests', false);
} catch(PDOException $e){
    if($e['errorInfo'][0] == 42000 && $e['errorInfo'][1] == 22022)
        return array('error' => 'sproc_blocked');
}
return array('success'=>true);
于 2012-07-25T21:52:12.520 回答