为什么这个PDO异常被捕获?

我有一个INSERT封装在try / catch中,但是缺少的表不会被捕获,PHP会在'$ dbh-> prepare'中出错。 在'$ dbh-> prepare'为2之前,我已经设置了'PDO :: ATTR_ERRMODE',并将值回显给浏览器。

如果该表存在,INSERT按我的预期工作。 当我故意丢弃表格并运行代码时,我才发现有问题。

我忽视了什么?

提前致谢

PHP致命错误:在C: etc httpd htdocs sqlite_data gather.php中有''''一般错误:1没有这样的表:submit_info'的未捕获的异常'PDOException''SQLSTATE [HY000] htdocs sqlite_data gather.php:309

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 ; 你有PDOExeption (注意缺少的c )。

链接地址: http://www.djcxy.com/p/69167.html

上一篇: Why isn't this PDO Exception getting caught?

下一篇: Erlang "system" memory section keeps growing