Php 如果是重复密钥,如何确定哪个主键(多个)触发了它

Php 如果是重复密钥,如何确定哪个主键(多个)触发了它,php,mysql,duplicates,Php,Mysql,Duplicates,我正在用用户数据库在我的网站上构建一个简单的注册应用程序。我正在使用PHP和MySQL。我要接收“用户名”和“电子邮件”。这两个都是我数据库中的主键。很明显,我也不想要同样的。如果a)用户名已被使用,b)电子邮件已被使用,我如何向用户提供反馈。我知道我可以对这两个进行查询,但我认为这可能是多余的(2次搜索和一次插入)。如果我尝试插入一个重复的密钥,有没有办法从MySQL接收反馈。如中所示,该字段在插入时失败。如果没有,最好的方法/实践是什么 谢谢大家。您最好执行以下操作: $result = m

我正在用用户数据库在我的网站上构建一个简单的注册应用程序。我正在使用PHP和MySQL。我要接收“用户名”和“电子邮件”。这两个都是我数据库中的主键。很明显,我也不想要同样的。如果a)用户名已被使用,b)电子邮件已被使用,我如何向用户提供反馈。我知道我可以对这两个进行查询,但我认为这可能是多余的(2次搜索和一次插入)。如果我尝试插入一个重复的密钥,有没有办法从MySQL接收反馈。如中所示,该字段在插入时失败。如果没有,最好的方法/实践是什么


谢谢大家。

您最好执行以下操作:

$result = mysql_query( "insert into yourtable (`username`, `email`) values ('usernamesubmitted','emailsubmitted')");
if (!$result) {
      die('Invalid query: ' . mysql_error());
}

这里的假设是,如果要插入的字段之一是主键并且被复制,则插入查询将失败。在这种情况下…输出一条消息-消息将包含在这种情况下您可以获得的最大信息,然后您可以根据需要处理它。您最好执行以下操作:

$result = mysql_query( "insert into yourtable (`username`, `email`) values ('usernamesubmitted','emailsubmitted')");
if (!$result) {
      die('Invalid query: ' . mysql_error());
}
这里的假设是,如果要插入的字段之一是主键并且被复制,则插入查询将失败。在这种情况下…输出一条消息-消息将包含在这种情况下您可以获得的最大信息,然后您可以适当地处理它