识别用户,MySQL和&的重复条目。 PHP

时间:2012-05-30 08:08:58

标签: php mysql error-handling duplicates

我有一个提交表单,当用户尝试使用重复条目提交时,它会返回MySQL错误#1062。例如,错误说明:

Duplicate entry 'graphics' for key 'name'

我想给用户一个自定义消息,解释(用简单的英语)他们为什么会收到错误,以及导致错误的具体条目。例如:

"Graphics" is a duplicate entry and should not be used. Please remove it and resubmit the form."

密钥将始终为“名称”,但重复条目本身通常会有所不同。我需要能够从生成的MySQL错误中提取该特定值,然后将自定义消息包装在其周围。怎么可以这样做?

2 个答案:

答案 0 :(得分:4)

您可以尝试进行简单的错误检查,如果发生mysql错误,则向用户显示错误消息。你可以尝试这样的事情:

$rows = mysql_query("SELECT `name` from `tbl` WHERE `name` = 'graphics';");

if(mysql_num_rows($rows) > 0){
    echo '"Graphics" is a duplicate entry and should not be used. Please remove it and resubmit the form.';
}else{
    insert...
}

答案 1 :(得分:0)

如果您要插入的项目事先存在,您可以在输入任何数据之前先检查表格。

然后,您可以使用if else循环根据错误打印自定义消息 像

      $check_exists = // runs the code here to check if the entry graphics already exists for the existing name

     if ($post['name'] == ''){

     // error message for blank entry 

     }elseif($check_exists == true) {

   // custom error mesage for duplicate entry 

    }else {

  // submit the form here

    }