0

データベースのquery()の呼び出しから奇妙なエラーを受け取りました。クエリ呼び出しが500サーバーのエラーページにリダイレクトされ、残りのコードが実行されていないように見えることを除いて、これは通常問題にはなりません。

エラーに関係なく、このPHPはAJAX呼び出し中に実行されます。つまり、CakePHPがリダイレクトしているため、エラーを含む適切にフォーマットされたjson文字列を返すことができません。

回避策は、エラーが発生した場合にサーバーからの大きな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 に答える