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

How to insert or update a query in mySQL if COUNT = 0 [duplicate]

提问人:Stefano Zanetti 提问时间:4/2/2019 最后编辑:Stefano Zanetti 更新时间:4/2/2019 访问量:469

问:

我正在尝试创建一个注册表单,以在一个简单的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" );
}

如您所见,我想检查用户的电子邮件是否已经存在。 如果存在(在本例中,如果存在),则代码必须具有mysql表中已设置的值。 如果尚不存在 (),它将创建一个具有 .>= 1UPDATE== 0INSERT

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

编辑: 我也尝试过,但仍然一无所获。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 插入 sql-update

评论

0赞 u_mulder 4/2/2019
你会感到惊讶,但不会返回你的计数。mysqli_query
0赞 Stefano Zanetti 4/2/2019
嗨,@u_mulder..我是 mysql 和 php 的新手。你能解释一下吗?不好意思
0赞 u_mulder 4/2/2019
打开手册
0赞 Stefano Zanetti 4/2/2019
没那么温柔,但还是谢谢
0赞 slaakso 4/2/2019
看一看 .您可以在一个语句中完成所有操作。INSERT ... ON DUPLICATE KEY UPDATE

答:

0赞 David Alvarez 4/2/2019 #1

PHP手册

/* 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);
}