【问题标题】:php call to oci_execute in try catch blockphp 在 try catch 块中调用 oci_execute
【发布时间】:2017-11-02 16:15:42
【问题描述】:

这是我的代码:

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

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

【问题讨论】:

  • oci_execute 是否记录在案以引发异常?
  • 异常正在引发,但控制未进入 catch 块。

标签: php oracle oracle-call-interface


【解决方案1】:

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

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

如果您不想在错误日志中出现 Warning,您可以在前面加上 @ 符号来禁止它。

【讨论】:

    猜你喜欢
    • 2015-03-31
    • 2012-02-20
    • 1970-01-01
    • 2015-01-07
    • 2013-07-07
    • 2019-12-04
    • 2017-03-19
    • 2015-12-05
    • 1970-01-01
    相关资源
    最近更新 更多