繁体   English   中英

PHP检查电子邮件是否已存在于数据库中

[英]PHP Checking if the email already exists in the database

我正在使用登录系统制作一个网站。 当用户想要注册并输入电子邮件时,MySQL数据库中应该已经不存在该电子邮件了。 我正在尝试通过准备好的语句来编写代码。

当用户输入数据库中已经存在的电子邮件时,我希望它将用户发送到具有标头功能的同一注册页面,但出现某种错误。 我试图将行数存储在名为$ resultcheck的变量中,并检查是否有相同的电子邮件大于0的列(如果已经存在)。

这是代码:

$query = "SELECT * FROM users WHERE Mail=?;";
        $stmt = mysqli_stmt_init($conn);
        if(!mysqli_stmt_prepare($stmt, $query))
        {
            header("Location: ../registrering.php?error=sqlerror");
            exit();
        }
        else
        {
            mysqli_stmt_bind_param($stmt, "s", $mail);
            mysqli_stmt_execute($stmt);
            mysqli_stmt_store_result($stmt);
            $resultCheck = mysqli_stmt_num_rows($stmt);
            if($resultcheck > 0)
            {
                header("Location: ../registrering.php?error=emailtaken");
                exit();
            }
            else {...}

但是,当我提交一个数据库中已有电子邮件的帐户时,我成功地在表用户中输入了另一列,并且使用同一封电子邮件具有多个列。

您正在分配$resultCheck ,然后测试另一个名为$resultcheck变量,该变量始终为0。

因此,您的错误是变量命名中的错别字。

除了使用SELECT SQL进行检查之外。 您应该将mysql中的列设置为unique。 参见https://www.w3schools.com/sql/sql_unique.asp

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM