php 在 try catch block 中调用 oci_execute

标签 php oracle oracle-call-interface

这是我的代码:

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

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

最佳答案

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

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

如果您不希望错误日志中出现警告,您可以在前面添加@ 符号来抑制它。

关于php 在 try catch block 中调用 oci_execute,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47079941/

相关文章:

java - 通过 JDBC 在 Oracle 中选择和更新一百万行的性能不佳

java - 我可以将 TIMESTAMP WITH TIME ZONE 或 TIMESTAMP WITH LOCAL TIME ZONE 映射到哪些 Java 数据类型?

c++ - Oracle OCI、绑定(bind)变量和查询,如 ID IN (1, 2, 3)

php - 防止 php 在 pre 标签之间渲染/执行

php - 使用 iframe 的任何缺点

oracle - 不带参数调用 Oracle 存储过程

c - 在 OCIAQDeq() 中使用 NULL 指针

javascript - 当我在 php 代码中回显该函数时,javascript 函数不会执行

javascript - JQuery 嵌入到 php echo 中。不成功

c - 如何调用Oracle的olog()?