【问题标题】:PHP PDO Display Formatted Error To UserPHP PDO 向用户显示格式化错误
【发布时间】: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 的方式是唯一的出路。

标签: php mysql pdo


【解决方案1】:

您不应该在自动增量字段中插入值。系统会为你创建。

【讨论】:

  • OP 没有提到自动增量字段。他刚刚在表中获得了一个组合键设置为UNIQUE,并希望在创建重复值时捕获错误。
  • 这个前端是什么样子的?
猜你喜欢
  • 1970-01-01
  • 2014-01-11
  • 1970-01-01
  • 2014-04-09
  • 1970-01-01
  • 1970-01-01
  • 2014-08-23
  • 1970-01-01
  • 2012-05-11
相关资源
最近更新 更多