插入到。。。在重复密钥更新时不更新PHP和mySQL中的重复值

插入到。。。在重复密钥更新时不更新PHP和mySQL中的重复值,php,mysql,sql-update,sql-insert,Php,Mysql,Sql Update,Sql Insert,我正在尝试使用函数插入到。。。在重复键上在mySQL表中插入一些数据。 如果已经有一个用户注册了同一封电子邮件,我想更新这些值 因此,在本讨论中搜索后,我实现了以下代码: ,以及其他链接 我还看了手册 事实上,代码可以正确地插入新用户。 但如果我尝试更新一个已经存在的用户,它会创建一个新记录。因此,我有两个用户注册了同一封电子邮件(如果表中已经有电子邮件,我需要更新用户) 我希望这个问题尊重标准,我已经在stackoverflow做了所有的研究,但是没有一个答案可以帮助我。 所以请不要把我的问题

我正在尝试使用函数
插入到。。。在重复键上
在mySQL表中插入一些数据。 如果已经有一个用户注册了同一封电子邮件,我想更新这些值

因此,在本讨论中搜索后,我实现了以下代码: ,以及其他链接

我还看了手册

事实上,代码可以正确地插入新用户。 但如果我尝试更新一个已经存在的用户,它会创建一个新记录。因此,我有两个用户注册了同一封电子邮件(如果表中已经有电子邮件,我需要更新用户)

我希望这个问题尊重标准,我已经在stackoverflow做了所有的研究,但是没有一个答案可以帮助我。 所以请不要把我的问题标记为重复

另外,我实际上是一个网页设计师,在编码方面没有任何经验,这个项目超出了我的能力范围。但不幸的是,我必须解决这个问题。
谢谢。

专栏电子邮件应该是唯一的

ALTER TABLE `theElisa_signUpADD` UNIQUE (email);
您可以使用两个查询


使
email
列唯一表的键是什么?email列是唯一的吗?可能是Hi的重复项,所以可能我在这方面真的是个傻瓜。因此,现在我已经在我的表中将电子邮件设置为唯一的(我还有一个主键作为
id
,但现在这不是必需的)。是的!谢谢,我已经在mySQL表中完成了这项工作,并且成功了!为什么要使用2个查询?这将更新刚刚插入的行。否,这将从唯一电子邮件中插入引用中的新数据。这就像alter命令是如何工作的
ALTER TABLE `theElisa_signUpADD` UNIQUE (email);
$query=mysqli_query($conn,"INSERT INTO theElisa_signUp (name, email, telephone, user, psw, role, expire_date) VALUES ('$name', '$email', 'not-set', '$username', '$password', '$role', '$expire_date') ON DUPLICATE KEY UPDATE name = '$name',");
$query=mysqli_query($conn,"UPDATE theElisa_signUp SET user ='$username', psw = '$password', expire_date = '$expire_date' WHERE name = '$name' ");