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

时间:2012-02-03 02:37:23

标签: php mysql exception-handling duplicates

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

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

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

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

,或者

还有其他人可以想到的更容易的方式吗?我知道我越来越复杂,我越来越想到它,抱歉。

2 个答案:

答案 0 :(得分:2)

使用AJAX。

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

答案 1 :(得分:0)

如果我不了解Ajax,我会做类似的事情,我将检查该值是否存在。如果存在的话,我会手动生成一种情况,导致php错误,例如$ error ='have重复的key $ your_column';然后在想要显示该错误的地方回显。

第二种方法,我知道在重复键中,php会生成一个错误,称为

  on duplicate key

,我会捕捉到并显示上面提到的内容。但是到目前为止,我还不知道如何捕获该错误。也许mysqli_error()在这里可能有用:)

更新

仅在列是否包含任何记录以及是否包含记录之前检查 如果找到记录{ 用户已经退出 }其他{ 它是一个新用户 }