<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
我不能简单地用一条消息来替换这个错误或警告,告诉用户他试图插入的代码已经存在。
希望我能解释一下,谢谢!
答案 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;
}
}