查看所使用的电子邮件是否在数据库中 - PHP

时间:2016-10-24 09:44:06

标签: php sql

  

我正在尝试访问我的数据库以查看电子邮件是否已存在   以前使用过。我所有的尝试都失败了。我可以得到表格   将信息输入数据库,但就是这样。我很新   到PHP所以感谢任何帮助。

 <?php
    require 'database.php';

    $message = '';

    if(!empty($_POST['email']) && !empty($_POST['password'])):



            $sql = "INSERT INTO noodles_gamification (email, password) VALUES (:email, :password)";
            $stmt = $conn->prepare($sql);

            $stmt->bindParam(':email', $_POST['email']);
            $stmt->bindParam(':password', password_hash($_POST['password'], PASSWORD_BCRYPT));
    if( $stmt->execute() ){;
            $message = 'Successfully created new user';

     }else {    
        $stmt = $conn->prepare('SELECT email FROM noodles_gamification WHERE email = :email');
        $stmt->execute(array(':email' => $_POST['email']));
        $row = $stmt->fetch(PDO::FETCH_ASSOC);

        if(!empty($row['email'])){
            $error[] = 'email provided is already in use.';
        }

    } 
    endif;
    ?>

1 个答案:

答案 0 :(得分:0)

我认为在将新记录插入数据库之前,您需要检查电子邮件是否已经存在只需修改您认为的if条件

<?php
        require 'database.php';

        $message = '';

        if(!empty($_POST['email']) && !empty($_POST['password'])):

    $stmt = $conn->prepare('SELECT email FROM noodles_gamification WHERE email = :email');
            $stmt->execute(array(':email' => $_POST['email']));
            $row = $stmt->fetch(PDO::FETCH_ASSOC);

            if(!empty($row['email'])){
                $error[] = 'email provided is already in use.';
            } else {



                $sql = "INSERT INTO noodles_gamification (email, password) VALUES (:email, :password)";
                $stmt = $conn->prepare($sql);

                $stmt->bindParam(':email', $_POST['email']);
                $stmt->bindParam(':password', password_hash($_POST['password'], PASSWORD_BCRYPT));
        if( $stmt->execute() ){;
                $message = 'Successfully created new user';

         }
         }
         else {    

        } 
        endif;
        ?>