INSERT INTO ...在重复键更新上不更新PHP和MySQL中的重复值

时间:2019-04-02 11:06:38

标签: php mysql sql-update sql-insert

我正在尝试使用功能describe('something', () => { let setInBeforeAll, setinBeforeEach; beforeAll(() => { return returnsAPromise().then(val => { // <= you can return a Promise... setInBeforeAll = val; }); }); beforeEach(async () => { // ...or use an async function setInBeforeEach = await alsoReturnsAPromise(); }); it('should do something', () => { // both setInBeforeAll and setInBeforeEach are available here }); }); 在mySQL表中插入一些数据。 如果已经有一个用户注册了相同的电子邮件,我想更新这些值。

因此,在此讨论中进行搜索后,我实现了以下代码: link-1link-2和其他链接...

我还看了手册link-4

INSERT INTO ... ON DUPLICATE KEY

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

我希望这个问题符合标准,并且我已经在stackoverflow中进行了所有研究,但是没有答案可以帮助我。 所以请不要将我的问题标记为重复。

P.s。我实际上是一位网页设计师,在编码方面的经验为零,而这个项目超出了我的能力范围。但是不幸的是我必须解决这个问题。 谢谢。

2 个答案:

答案 0 :(得分:1)

列电子邮件应为唯一。

ALTER TABLE `theElisa_signUpADD` UNIQUE (email);

答案 1 :(得分:0)

您可以使用两个查询here's reference

$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' ");