php在try catch块中调用oci_execute

时间:2017-11-02 16:15:43

标签: php oracle oci

这是我的代码:

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

其中$command是Oracle SQL查询。我的问题是,如果查询失败,控件不会进入catch块。为什么会这样? 我正在使用php的yii框架。

1 个答案:

答案 0 :(得分:0)

oci_execute不会抛出异常。如果失败,将返回布尔false并生成Warning。要获取错误详细信息,您需要调用oci_error()函数而不是try/catch

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

如果您不想在错误日志中使用Warning,则可以添加@符号来禁止它。