1
   <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

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

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

4

1 回答 1

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;
    }
}
于 2013-10-03T12:14:46.807 回答