我有以下代码:
try {
$sth = $db->prepare("INSERT INTO provider_specialties (id,specialtyID) VALUES (?,?)");
$sth->execute(array($provID,$specialtyID));
}
catch(PDOExecption $e) { echo "PDO Error: ".$e->getMessage(); exit; }
当ok数据插入时,它工作正常。但是,当它输入可能导致外键异常的数据时,它不是捕捉异常,而是用致命错误使脚本崩溃。我有
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION)
设置以确保它抛出异常。我在这里看到过其他一些关于类似的try/catch问题的帖子,但没有一个比得上这个。
修复Exception:
将PDOExecption
替换为PDOException
除非您有该异常的use PDOException;
语句,否则从全局命名空间获取它:
try {
$sth = $db->prepare("INSERT INTO provider_specialties (id,specialtyID) VALUES (?,?)");
$sth->execute(array($provID,$specialtyID));
}
catch(PDOException $e) { echo "PDO Error: ".$e->getMessage(); exit; }
另外,您有一个错字(不确定是否仅在问题中或在您的代码中,PDOExecption
应该是PDOException
)