2

我有一个提交表单,当用户尝试使用重复条目提交它时,它会返回 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 错误中提取该特定值,然后将我的自定义消息包装在它周围。怎么可能做到这一点?

4

2 回答 2

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...
}
于 2012-05-30T08:17:47.957 回答
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

    }
于 2012-05-30T08:18:45.617 回答