如何捕捉PHP中存在重复键的错误来处理mySQL唯一键索引约束


How can I catch a duplicate key exists error in PHP to handle mySQL unique key index constraint?

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

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

所以我真正的问题是。。。(可能还有m3tsys)。。。真的是这样吗:

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

或者,

有没有其他人能想到的,也许更简单的方法?我知道我越想越复杂,对不起。

使用AJAX。

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

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

我知道的第二种方法是,在重复密钥中,php生成一个名为的错误

  on duplicate key

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

更新

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