为了账号安全,请及时绑定邮箱和手机立即绑定

我如何获取电子邮件和用户名的数据?

我如何获取电子邮件和用户名的数据?

PHP
呼唤远方 2023-09-08 10:32:38
我已经找到了如何获取用户名,但是我该如何使用电子邮件来获取用户名呢?因为,我想为电子邮件和用户名添加两个单独的错误消息$sql = "SELECT uid_users FROM users WHERE uid_users=?";$stmt = mysqli_stmt_init($conn);if (!mysqli_stmt_prepare($stmt, $sql)) {header("Location: ../register.php?error=sqlerror");exit();}else {mysqli_stmt_bind_param($stmt, "s", $username);mysqli_stmt_execute($stmt);mysqli_stmt_store_result($stmt);$resultCheck = mysqli_stmt_num_rows($stmt);if ($resultCheck > 0) {  header("Location: ../register.php?error=usertaken&mail=".$email);  exit();}
查看完整描述

3 回答

?
RISEBY

TA贡献1856条经验 获得超5个赞

用于OR检查另一列。


$sql = "SELECT uid_users FROM users WHERE uid_users=? OR email = ?";

$stmt = mysqli_stmt_init($conn);

if (!mysqli_stmt_prepare($stmt, $sql)) {

    header("Location: ../register.php?error=sqlerror");

    exit();

}

else {

    mysqli_stmt_bind_param($stmt, "ss", $username, $email);

    mysqli_stmt_execute($stmt);

    mysqli_stmt_store_result($stmt);

    $resultCheck = mysqli_stmt_num_rows($stmt);


    if ($resultCheck > 0) {

        header("Location: ../register.php?error=usertaken&mail=".$email);

        exit();

    }

}

请注意,这不会告诉他们用户名或电子邮件是否已被占用。如果您愿意,您应该只执行两个单独的查询,一个查询重复的用户名,另一个查询重复的电子邮件。


或者您可以将查询更改为SELECT uid_users, email并获取查询结果。然后检查获取的用户名或电子邮件是否与输入匹配,并显示相应的错误。


查看完整回答
反对 回复 2023-09-08
?
UYOU

TA贡献1878条经验 获得超4个赞

为此,您可以使用 OR 运算符:


   SELECT uid_users 

      FROM users 

     WHERE uid_users=? 

        OR email=?";```


查看完整回答
反对 回复 2023-09-08
?
一只名叫tom的猫

TA贡献1906条经验 获得超2个赞

如果您想检查数据库中是否存在与用户名和电子邮件匹配的记录,那么您应该使用WHERE uid_users=? AND email=?.


如果您想检查数据库中是否存在与用户名或电子邮件匹配的记录,请使用WHERE uid_users=? OR email=?。


小注意事项,如果您只想检查数据库中记录的存在性,则不需要获取数据。只需让 MySQL 告诉您匹配记录的数量即可。用于COUNT()此目的。


$stmt = $conn->prepare("SELECT COUNT(1) FROM users WHERE uid_users=? OR email=?");

$stmt->bind_param('ss', $username, $email);

$stmt->execute();

// Fetch value of COUNT(1) from DB

$resultCheck = $stmt->get_result()->fetch_row()[0];


if ($resultCheck) {

    header("Location: ../register.php?".http_build_query(['error' => 'usertaken', 'mail' => $email]));

    exit();

}


查看完整回答
反对 回复 2023-09-08
  • 3 回答
  • 0 关注
  • 87 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信