如果COUNT = 0,如何在mySQL中插入或更新查询[重复]

问题描述 投票:-1回答:1

这个问题在这里已有答案:

我正在尝试创建一个注册表单,以在简单的mysql表中插入或更新用户凭据

我在这里看了几乎每个问题,但我无法弄清楚为什么我的代码不会更新或在表单中插入用户

//check if the user is already registered and then override and update his credentials 
$check = "SELECT COUNT(*) FROM theElisa_signUp WHERE Email = '$email'"; 

if (mysqli_query($conn, $check) >= 1)
{
    $update = mysqli_query($conn, "UPDATE theElisa_signUp SET name = '$name', user = '$username', psw = '$password', expire_date = '$expire_date' WHERE email = '$email'");
} elseif (mysqli_query($conn, $check) == 0) {
    //inserire dati sign up dei nuovi registrati
    $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')");
} else {
    header( "Location: ../admin/index.php" );
}

如您所见,我想检查用户的电子邮件是否已存在。如果存在(在这种情况下,如果它是>= 1)代码必须UPDATE已经在mysql表中设置的值。如果不存在(== 0),它将使用INSERT创建一个新用户。

我希望我的问题清楚,尊重标准。

编辑:我也试过ON DUPLICATE KEY UPDATE但仍然没有。

$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', user = '$username', password = '$password', expire_date = '$expire_date' ");

真的希望有人可以帮忙。不幸的是,我是一个简单的网页设计师,但对于这个项目,他们要求我这样做,我的代码背景为零。

php mysql mysqli insert sql-update
1个回答
0
投票

来自PHP Manual

/* Select queries return a resultset */
if ($result = mysqli_query($link, "SELECT Name FROM City LIMIT 10")) {
    printf("Select returned %d rows.\n", mysqli_num_rows($result));

    /* free result set */
    mysqli_free_result($result);
}
© www.soinside.com 2019 - 2024. All rights reserved.