【问题标题】:How can I catch a duplicate key exists error in PHP to handle mySQL unique key index constraint?如何在 PHP 中捕获重复键存在错误以处理 mySQL 唯一键索引约束?
【发布时间】:2012-02-03 02:37:22
【问题描述】:

好的,我也有这个问题 - 我有一个 mysql 数据库和 PHP 页面。我正在向数据库提交一个表单,它已经检查了空字符串并在有错误时突出显示字段等。

在其中一个字段(特别是用户名)上,我需要检查它是否已经存在于 DB 的 Col_1 中,如果为 TRUE,则在不提交表单的情况下抛出错误警报,如果 FALSE 通过已经提交的表单提交验证。

所以我真正的问题......(也许 m3tsys 也是)......真的是这样的:

有没有办法 onBlur/onChange/onSubmit(所有这些都可以阻止表单向数据库提交数据)我的表单字段检查数据库中是否存在然后发出警报?

或者,

还有其他任何人都可以想到的更简单的方法吗?我知道我越想越复杂,抱歉。

【问题讨论】:

    标签: php mysql exception-handling duplicates


    【解决方案1】:

    使用 AJAX。

    在更改用户名字段时,调用一个 PHP 脚本来检查用户名是否存在。如果存在,则在页面上显示错误。如果没有,它是可用的。

    【讨论】:

    • 这是你的答案。 ajax 就是为类似这样的事情而设计的。
    【解决方案2】:

    如果我不了解 Ajax,我会做类似的事情,我会检查该值是否存在。如果它存在,我会手动生成一个我收到 php 错误的情况,例如 $error = 'have duplicate Key $your_column';然后在你想显示错误的地方回显。

    我知道的第二种方法是,在重复键中,php会生成一个名为

    的错误
      on duplicate key
    

    我会抓住它并展示我上面提到的一些东西。但截至目前,我不知道如何才能捕捉到该错误。也许 mysqli_error() 在这里有用:)

    更新

    只需检查之前列是否有任何记录,如果有 如果找到记录{ 用户已经退出 } 别的 { 它是一个新用户 }

    【讨论】:

      猜你喜欢
      • 2021-10-12
      • 2020-02-15
      • 2017-09-16
      • 2011-10-17
      • 2012-03-03
      • 2018-08-26
      • 2021-10-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多