Php 为什么不是';这个PDO异常不会被捕获吗?

Php 为什么不是';这个PDO异常不会被捕获吗?,php,exception-handling,pdo,Php,Exception Handling,Pdo,我在try/catch中封装了一个INSERT,但是没有捕捉到缺少的表,PHP在“$dbh->prepare”处出错。 我已经设置了“PDO::ATTR_ERRMODE”,并且在“$dbh->prepare”为2之前,返回到浏览器的值 如果该表存在,那么INSERT将按照我的预期工作。当我故意删除表并运行代码时,我才发现测试时出现了问题 我忽略了什么 提前谢谢 PHP致命错误:未捕获异常“PDOException”,消息为“SQLSTATE[HY000]:一般错误:1没有这样的表:C:\etc\

我在try/catch中封装了一个INSERT,但是没有捕捉到缺少的表,PHP在“$dbh->prepare”处出错。 我已经设置了“PDO::ATTR_ERRMODE”,并且在“$dbh->prepare”为2之前,返回到浏览器的值

如果该表存在,那么INSERT将按照我的预期工作。当我故意删除表并运行代码时,我才发现测试时出现了问题

我忽略了什么

提前谢谢

PHP致命错误:未捕获异常“PDOException”,消息为“SQLSTATE[HY000]:一般错误:1没有这样的表:C:\etc\httpd\htdocs\sqlite\u data\gather.PHP:309中的submit\u info”

if($our->db['save']) {
    try {
        echo $dbh->getAttribute(constant('PDO::ATTR_ERRMODE'));
        $sth = $dbh->prepare(
            "INSERT INTO submit_info( post_time, post_completed, post_size , script_name, user_agent  )" .
            " VALUES ( datetime(:request_time, 'unixepoch'), datetime(:current_time, 'unixepoch'), :content_length, :script_filename, :user_agent );"
            );
        $sth->bindValue(':request_time', (@$_SERVER['REQUEST_TIME'] + 0), PDO::PARAM_INT);
        $sth->bindValue(':current_time', time(), PDO::PARAM_INT);
        $sth->bindValue(':content_length', (@$_SERVER['CONTENT_LENGTH'] + 0), PDO::PARAM_INT);
        $sth->bindValue(':script_filename', @$_SERVER['SCRIPT_FILENAME'], PDO::PARAM_STR);
        $sth->bindValue(':user_agent', (@$_SERVER['HTTP_USER_AGENT'] . ''), PDO::PARAM_STR);
        $sth->execute();
        $our->db['submit_id'] = $dbh->lastInsertId();
    } catch (PDOExeption $e) {
        echo "There was an error!"; # try writing something to the browser temporarily
        errors("Error writing page load information to database: " . $e->getMessage());
        $our->db['save'] = FALSE;
    }
}

您拼写错误
PDOException
;您有
PDOException
(注意缺少的
c
)。

您拼写错误
PDOException
;您有
PDOExeption
(注意缺少
c
)。

这确实是问题所在。这是我参与的第一个PDO项目。因为那封丢失的信,我花了2个小时来查看文档和逻辑。Komodo通常会标记拼写错误,或者我在日志中得到一个运行时错误,指向正确的方向。谢谢你的帮助!这确实是问题所在。这是我参与的第一个PDO项目。因为那封丢失的信,我花了2个小时来查看文档和逻辑。Komodo通常会标记拼写错误,或者我在日志中得到一个运行时错误,指向正确的方向。谢谢你的帮助!