SQL - 处理PHP中的错误(重复条目)

时间:2013-10-03 11:23:53

标签: sql error-handling duplicates entity warnings

   <input type="text" name="CODE" size="25" placeholder="Insert code..." />

   <input type="text" name="NAME" size="25" placeholder="Insert name..." />

  if(isset($_POST['CODE'], $_POST['NAME'])){

         $querystring='INSERT INTO Company (Name, Code) VALUES(:Name,:Code);';

         $stmt = $pdo->prepare($querystring);
         $stmt->bindParam(':Name', $_POST['NAME']);
         $stmt->bindParam(':Code', $_POST['Code']);
         $stmt->execute();

}

喂!

我遇到的问题是在PHP中以更好的方式显示SQL错误。假设我插入一个代码为'123'且名称为'ABC'的公司。插入一个代码为'123'的公司后,我显然会收到一个错误,即该代码有重复的条目。

我得到的错误是

Warning: PDOStatement::execute(): SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry

我不能简单地用一条消息来替换这个错误或警告,告诉用户他试图插入的代码已经存在。

希望我能解释一下,谢谢!

1 个答案:

答案 0 :(得分:1)

尝试处理旅游查询,希望它能为您服务

try{
    $pdo->query("INSERT INTO `table`(`name`,`value`)`VALUES('name','value')");
}
catch (PDOException $e) {
    if($e->errorInfo[0] == '23000' && $e->errorInfo[1] == '1062'){
        throw new CustomException("Bla bla already exists");
    } 
    else {
    throw $e;
    }
}