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

Posted

技术标签:

【中文标题】如果 COUNT = 0 [重复],如何在 mySQL 中插入或更新查询【英文标题】:How to insert or update a query in mySQL if COUNT = 0 [duplicate] 【发布时间】:2019-08-23 12:25:52 【问题描述】:

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

真的希望有人能在这方面提供帮助。不幸的是,我是一名简单的网页设计师,但对于这个项目,他们要求我这样做,而我的代码背景为零。

【问题讨论】:

您会感到惊讶,但mysqli_query 不会返回您的计数。 嗨@u_mulder ..我是mysql和php的超级新手。你能给我解释一下吗?对不起 打开手册 不是那么温柔,但还是谢谢你 看看INSERT ... ON DUPLICATE KEY UPDATE。您可以在一个语句中完成所有操作。 【参考方案1】:

来自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);

【讨论】:

以上是关于如果 COUNT = 0 [重复],如何在 mySQL 中插入或更新查询的主要内容,如果未能解决你的问题,请参考以下文章

没有 else 子句的单行 If 条件 [重复]

26.删除排序数组中的重复项

将字符串元素转换为整数C++ [重复]

如何使用 PHP 回显 mysql SELECT COUNT(*) [重复]

如何在 SQL 中使用 count(*) [重复]

生成count个[0-n)不重复的随机数