我有以下代码:
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)
设置以确保它抛出异常。我在这里看过其他一些关于类似尝试/捕获问题的帖子,但没有一个与此匹配。
答案 0 :(得分:1)
通过修复Exception ortograph,您是否遇到同样的问题:
将PDOExecption
替换为PDOException
答案 1 :(得分:0)
除非您拥有该异常的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
)