<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
我不能简单地用消息告诉用户他要插入的代码已经存在来替换此错误或警告。
希望我能解释,谢谢!
最佳答案
尝试像这样处理旅游查询,希望对您有用
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;
}
}
关于sql - SQL-处理PHP中的错误(重复输入),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19157952/