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

我已经找到了如何获取用户名,但是我该如何使用电子邮件来获取用户名呢?因为,我想为电子邮件和用户名添加两个单独的错误消息


$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();

}


呼唤远方
浏览 90回答 3
3回答

RISEBY

用于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并获取查询结果。然后检查获取的用户名或电子邮件是否与输入匹配,并显示相应的错误。

UYOU

为此,您可以使用 OR 运算符:   SELECT uid_users       FROM users      WHERE uid_users=?         OR email=?";```

一只名叫tom的猫

如果您想检查数据库中是否存在与用户名和电子邮件匹配的记录,那么您应该使用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();}
打开App,查看更多内容
随时随地看视频慕课网APP