PDO 异常问题 - 如何捕获它们 不要抓住它们。
我正在使用PDO为数据库重写网站界面。我曾经使用mysql扩展,但我从未为错误处理而烦恼,我拥有的几个错误处理程序基本上是复制粘贴。
现在我想把这件事做好。但是,我在捕获错误时遇到问题(MySQL中的“重复条目”,“空值”等错误)。我的语句需要有多少内容在 try 块中?它应该全部在那里吗?我正在使用 连接到我的数据库(它有自己的错误处理),所以只有查询执行在这个代码中有错误。我无法弄清楚为什么在执行以下代码时它没有捕获错误:Include()
try {
$stmt = $db->prepare("INSERT INTO tbl_user (id, name, password, question, answer) VALUES (NULL, :name, :password, :question, :answer)");
$stmt->bindValue(":name", $_POST['name']);
$stmt->bindValue(":password", $_POST['password']);
$stmt->bindValue(":question", $_POST['question']);
$stmt->bindValue(":answer", $_POST['answer']);
$stmt->execute();
echo "Successfully added the new user " . $_POST['name'];
} catch (PDOException $e) {
echo "The user could not be added.<br>".$e->getMessage();
}
所以我的问题是:所有这些都必须在尝试块中吗?我可以直接将执行放在 try 块中吗?它应该捕获错误,但会传递成功消息。(尝试添加两个“John”用户时)。我签入了PHPMyAdmin;索引是唯一的,并且会按预期抛出错误,只是没有使用此代码。Duplicate value "John" in key "name"