Php 为什么不是';这个PDO异常不会被捕获吗?
我在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”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\
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通常会标记拼写错误,或者我在日志中得到一个运行时错误,指向正确的方向。谢谢你的帮助!