将唯一错误与其他错误分开

时间:2015-07-30 14:34:36

标签: php sql pdo unique

我有一个表,其中一列是unique。因此,当我插入新行时,如果该列的内容重复,则会在catch(PDOException $e)中给出错误。应该注意的是,我在catch()中也收到任何其他错误。现在我需要将unique错误与其他错误分开。我需要这样的事情:

try{
     // inserting
}

catch(PDOException $e){
   if ($e == 'unique error') {echo 'that is a unique error';}
   else { echo 'that is different error'}
}

所以我需要这样的条件:if ($e == 'unique error'){}。有什么条件吗?

1 个答案:

答案 0 :(得分:2)

例外是包含信息的对象。错误类型的消息应附加到该对象,因此您应该能够:

<!DOCTYPE html>
<html>

<head>
  <meta charset="utf-8">
  <title>Coloured Boxes</title>

  <link href="https://cdnjs.cloudflare.com/ajax/libs/normalize/3.0.3/normalize.min.css" rel="stylesheet" type="text/css" />
</head>

<body>
  <div class="container">
  </div>
  <script src="https://code.jquery.com/jquery-2.1.4.js"></script>
</body>

</html>

抛出异常时应定义异常消息。 如果你需要分开,可以通过代码来实现:

try {

} catch(PDOException $e) {
    echo $e->getMessage();
}

最好找出那些情况下的错误代码,然后比较getCode()

应该注意,为了检测try { } catch(PDOException $e) { if($e->getCode() == $someVal) { } else if($e->getCode() == $someVal) { } } 错误,您应该使用以下条件:

unique