【发布时间】:2015-02-28 10:01:22
【问题描述】:
我有两个唯一键“电话”和“电子邮件”。当插入重复键时,我收到以下错误消息:
Integrity constraint violation: 1062 Duplicate entry '4294967295-xyz@gmail.com' for key 'phone'
我想要做的是向用户显示抛出的错误,如下所示:
1. Duplicate entry '4294967295' for key 'phone'
2. Duplicate entry 'xyz@gmail.com' for key 'email'
我该怎么做?
这是我为在前端显示错误所做的工作:
catch( PDOException $Exception ){
if ($Exception->errorInfo[1] == 1062) {
echo 'ERROR: ' . $Exception->getMessage();
}
}
【问题讨论】:
-
请向我们展示您的代码和您的尝试
-
试试这个:
echo $stmt->errorInfo()[2];这是你想要的吗? -
我可能会使用不同的查询(一旦字段失去焦点就使用 ajax...)来验证不同的输入字段,而不是解析 PDO 异常。在错误消息方面,这也会为您提供更大的灵活性。
-
@popla BTW:我认为你只能得到 1 条错误消息,因为永远找不到第二条,因为它在发现第一个错误时停止
-
@Rizier123:是的,你是对的。似乎 jeroen 的方式是唯一的出路。