2017-11-02 41 views
0

ここに私のコードです:PHPの呼び出しは、try catchブロックでoci_executeする

$command
try 
{ 
    oci_execute($command); 
} 
catch(Exception $e){ 
    $this->sendMailFunction($e); 
} 

は、Oracle SQLクエリですが。私の質問は、クエリが失敗した場合、コントロールがcatchブロックに入っていないということです。それはなぜそうですか? 私はPHPのyiiフレームワークを使用しています。

+0

例外を発生させるためにoci_executeが文書化されていますか? – Mat

+0

例外は発生していますが、制御はcatchブロックには入っていません。 –

答えて

0

oci_execute例外をスローしません。失敗した場合は、ブール値falseが返され、Warningが生成されます。あなたがエラーでWarningは、あなたがそれを抑制するために@記号を付加することができますログに記録したくない場合は

if (false === oci_execute($command)) { 
    $this->sendMailFunction(oci_error($command)); 
}; 

:エラーの詳細を取得するには、oci_error()機能の代わりtry/catchを呼び出す必要があります。

関連する問題